diff --git a/DBXTalk/.DBXTalk.tex.properties.xml b/DBXTalk/.DBXTalk.tex.properties.xml new file mode 100644 index 0000000..3436271 --- /dev/null +++ b/DBXTalk/.DBXTalk.tex.properties.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/DBXTalk/.VMIntro.tex.properties.xml b/DBXTalk/.VMIntro.tex.properties.xml new file mode 100644 index 0000000..4615656 --- /dev/null +++ b/DBXTalk/.VMIntro.tex.properties.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/DBXTalk/DBXTalk.bbl b/DBXTalk/DBXTalk.bbl new file mode 100644 index 0000000..aad7b7b --- /dev/null +++ b/DBXTalk/DBXTalk.bbl @@ -0,0 +1,6 @@ +% +% This bibliography was produced by using jurabib.bst +% +\begin{thebibliography}{} + +\end{thebibliography} diff --git a/DBXTalk/DBXTalk.tex b/DBXTalk/DBXTalk.tex index aa2ef5e..a38a78c 100644 --- a/DBXTalk/DBXTalk.tex +++ b/DBXTalk/DBXTalk.tex @@ -34,16 +34,13 @@ \chapter{DBXTalk} \chapterauthor{\authorguille{}} -DBXTalk is a database driver that allows interaction with major relational database engines such as -Oracle and MSSQL, apart from those which are open source, like PostgreSQL and MySQL. +DBXTalk is an open-source suite of tools to manage relational databases on top of Pharo. Its backbone is the DBXTalk database driver. The DBXTalk database driver allows the interaction with the major relational database engines. All other tools in the suite make use of this driver to fulfill their duties. Currently, the DBXTalk database driver supports the interaction with the following database engines: Oracle, MSSQL, PostgreSQL, MySQL, SQLite, SQLite 3, Sybase ASE, Firebird, and Interbase. -Moreover, this driver is integrated with GLORP, enabling a complete and open-source -solution to relational database access. To do this, DBXTalk uses a library called OpenDBX. +The DBXTalk suite, within its set of tools, provides GLORP, an Object-Relational Mapper (ORM) framework; Phoseydon, a tool providing scaffolding capabilities for easy applications; and Neptuno, a browser to analyze our database structure. -In this chapter we will present DBXTalk and build with step by step a little application. +In this chapter we will present DBXTalk core ideas, the tools it provides, and finally use them to build step by step a little application. - -\section{DBXTalk Driver Architecture} +\section{DBXTalk Architecture} The DBXTalk Driver relies on several components in order to connect to different relational databases: \begin{itemize} \item The OpenDBXDriver package talks to the OpenDBX library and handles the engines differences. @@ -74,7 +71,7 @@ \section{DBXTalk Driver Architecture} \end{figure} -\section{Installing DBXTalk OpenDBX Driver} +\section{DBXTalk Installation} To install DBXTalk library, we need to install the previously detailed components: the OpenDBXDriver as well as some databases. \subsection*{Install OpenDBX Driver} @@ -219,11 +216,10 @@ \subsection{Fetching results} Transcript show: result rowsAffected. \end{code} +A SQL statement with rows as a result --such as a \emph{SELECT} statement-- brings a \ct{DBXResultSet} as result. A \ct{DBXResultSet} is a consumable set of rows. This means that once you've consumed all the rows in the \ct{DBXResultSet}, they will not be available any more. You can work with a \ct{DBXResultSet} in several ways: \sd{stef stopped here} -A SQL statement with rows as a result --such as a \emph{SELECT} statement-- brings a \ct{DBXResultSet} as result. A \ct{DBXResultSet} is a consumable set of rows. This means that once you've consumed all the rows in the \ct{DBXResultSet}, they will not be available any more. You can work with a \ct{DBXResultSet} in several ways: - \begin{itemize} \item Delegate row iteration to the result set: \begin{code}{} @@ -275,6 +271,8 @@ \subsection{Fetching results} whileTrue: [ :aResult | "doSometing here with the result" ]. "iterating the results one by one." \end{code} +<<<<<<< HEAD +======= \section{Tools} @@ -292,6 +290,7 @@ \section{Glorp} +>>>>>>> e7c68e168df735d2cdbf57b2e29c6bab2ec0dc66 %========================================================= \ifx\wholebook\relax\else \bibliographystyle{jurabib} diff --git a/PBE2.aux b/PBE2.aux new file mode 100644 index 0000000..4b9d10d --- /dev/null +++ b/PBE2.aux @@ -0,0 +1,638 @@ +\relax +\ifx\hyper@anchor\@undefined +\global \let \oldcontentsline\contentsline +\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}} +\global \let \oldnewlabel\newlabel +\gdef \newlabel#1#2{\newlabelxx{#1}#2} +\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}} +\AtEndDocument{\let \contentsline\oldcontentsline +\let \newlabel\oldnewlabel} +\else +\global \let \hyper@last\relax +\fi + +\select@language{english} +\@writefile{toc}{\select@language{english}} +\@writefile{lof}{\select@language{english}} +\@writefile{lot}{\select@language{english}} +\@writefile{toc}{\contentsline {chapter}{\numberline {1}Preface}{1}{chapter.1}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:intro}{{1}{1}{Preface\relax }{chapter.1}{}} +\@writefile{toc}{\contentsline {part}{\numberline {I}Frameworks}{3}{part.1}} +\@writefile{toc}{\contentsline {chapter}{\numberline {2}Creating Browsers with OmniBrowser}{5}{chapter.2}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {2.1}Building a simple browser step by step}{5}{section.2.1}} +\newlabel{sec:introduction}{{2.1}{5}{Building a simple browser step by step\relax }{section.2.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces A minimal file browser based on OmniBrowser.}}{6}{figure.2.1}} +\newlabel{fig:filebrowser}{{2.1}{6}{A minimal file browser based on OmniBrowser}{figure.2.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {2.2}Enhancing the file browser with actions, definitions and icons}{9}{section.2.2}} +\newlabel{sec:enhancing}{{2.2}{9}{Enhancing the file browser with actions, definitions and icons\relax }{section.2.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{Spawning browsers}{9}{subsubsection*.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces The browse command in the filer browser.}}{9}{figure.2.2}} +\newlabel{fig:command}{{2.2}{9}{The browse command in the filer browser}{figure.2.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{Creating new files}{11}{subsubsection*.3}} +\@writefile{toc}{\contentsline {subsubsection}{Modifying files}{12}{subsubsection*.4}} +\@writefile{toc}{\contentsline {subsubsection}{Distinguishing folders from plain files}{13}{subsubsection*.5}} +\@writefile{toc}{\contentsline {subsubsection}{Coloring and font selection}{14}{subsubsection*.6}} +\@writefile{toc}{\contentsline {section}{\numberline {2.3}Graph and Metagraph of a Browser}{15}{section.2.3}} +\newlabel{sec:omnibrowser}{{2.3}{15}{Graph and Metagraph of a Browser\relax }{section.2.3}{}} +\@writefile{toc}{\contentsline {subsection}{Overview of the Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser framework\xspace }{15}{subsection*.7}} +\newlabel{sec:overview}{{2.3}{15}{Overview of the \obf \relax }{subsection*.7}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Core of the Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser framework\xspace . }}{15}{figure.2.3}} +\newlabel{fig:core}{{2.3}{15}{Core of the \obf . \relax }{figure.2.3}{}} +\@writefile{toc}{\contentsline {paragraph}{Browser.}{15}{paragraph*.8}} +\@writefile{toc}{\contentsline {paragraph}{Node.}{16}{paragraph*.9}} +\@writefile{toc}{\contentsline {paragraph}{Metagraph.}{16}{paragraph*.10}} +\@writefile{toc}{\contentsline {paragraph}{Command.}{16}{paragraph*.11}} +\@writefile{toc}{\contentsline {paragraph}{Filter.}{16}{paragraph*.12}} +\@writefile{toc}{\contentsline {paragraph}{Definition.}{17}{paragraph*.13}} +\@writefile{toc}{\contentsline {subsection}{Core Behavior of the Framework}{17}{subsection*.14}} +\newlabel{sec:corebehavior}{{2.3}{17}{Core Behavior of the Framework\relax }{subsection*.14}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Core of the Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser framework\xspace and its extension for the file browser.}}{17}{figure.2.4}} +\newlabel{fig:coreextend}{{2.4}{17}{Core of the \obf and its extension for the file browser}{figure.2.4}{}} +\@writefile{toc}{\contentsline {subsection}{Glueing Widgets with the Metagraph}{18}{subsection*.15}} +\newlabel{widgets}{{2.3}{18}{Glueing Widgets with the Metagraph\relax }{subsection*.15}{}} +\@writefile{toc}{\contentsline {paragraph}{Lists.}{19}{paragraph*.16}} +\@writefile{toc}{\contentsline {paragraph}{Radio buttons.}{19}{paragraph*.17}} +\@writefile{toc}{\contentsline {paragraph}{Menus.}{19}{paragraph*.18}} +\@writefile{toc}{\contentsline {section}{\numberline {2.4}The Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser\xspace -based System Browser}{19}{section.2.4}} +\newlabel{sec:codebrowser}{{2.4}{19}{The \ob -based System Browser\relax }{section.2.4}{}} +\@writefile{toc}{\contentsline {subsection}{The Smalltalk\xspace System Browser}{20}{subsection*.19}} +\newlabel{sec:systemBrowser}{{2.4}{20}{The \st System Browser\relax }{subsection*.19}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser\xspace based Smalltalk\xspace system browser.}}{20}{figure.2.5}} +\newlabel{fig:ob}{{2.5}{20}{\ob based \st system browser}{figure.2.5}{}} +\@writefile{toc}{\contentsline {subsection}{System Browser Internals}{21}{subsection*.20}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Extension of the Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser framework\xspace to define the system browser.}}{21}{figure.2.6}} +\newlabel{fig:obInternal}{{2.6}{21}{Extension of the \obf to define the system browser}{figure.2.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.7}{\ignorespaces Metagraph of the system browser.}}{22}{figure.2.7}} +\newlabel{fig:obmetagraph}{{2.7}{22}{Metagraph of the system browser}{figure.2.7}{}} +\@writefile{toc}{\contentsline {paragraph}{Filtering of nodes.}{23}{paragraph*.21}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.8}{\ignorespaces How OBClassSortFilter sorts and indents two distinct class hierarchies in one category.}}{23}{figure.2.8}} +\newlabel{fig:classSortFilter}{{2.8}{23}{How OBClassSortFilter sorts and indents two distinct class hierarchies in one category}{figure.2.8}{}} +\@writefile{toc}{\contentsline {paragraph}{Widget notification.}{24}{paragraph*.22}} +\@writefile{lof}{\contentsline {figure}{\numberline {2.9}{\ignorespaces Some code browsers developed using Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser framework\xspace .}}{25}{figure.2.9}} +\newlabel{fig:browsers}{{2.9}{25}{Some code browsers developed using \obf }{figure.2.9}{}} +\@writefile{toc}{\contentsline {paragraph}{State of the browser.}{25}{paragraph*.23}} +\@writefile{toc}{\contentsline {section}{\numberline {2.5}Evaluation and Discussions}{25}{section.2.5}} +\newlabel{sec:discussion}{{2.5}{25}{Evaluation and Discussions\relax }{section.2.5}{}} +\@writefile{toc}{\contentsline {subsection}{Strengths}{26}{subsection*.24}} +\@writefile{toc}{\contentsline {paragraph}{Ease of use.}{26}{paragraph*.25}} +\@writefile{toc}{\contentsline {paragraph}{Explicit state transitions.}{26}{paragraph*.26}} +\@writefile{toc}{\contentsline {paragraph}{Separation of domain and navigation.}{26}{paragraph*.27}} +\@writefile{toc}{\contentsline {subsection}{Limitations}{27}{subsection*.28}} +\@writefile{toc}{\contentsline {paragraph}{Hardcoded flow.}{27}{paragraph*.29}} +\@writefile{toc}{\contentsline {section}{\numberline {2.6}Chapter Summary}{27}{section.2.6}} +\@writefile{toc}{\contentsline {paragraph}{Acknowledgment.}{28}{paragraph*.30}} +\@writefile{toc}{\contentsline {chapter}{\numberline {3}Glamour}{29}{chapter.3}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{glamour}{{3}{29}{Glamour\relax }{chapter.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.1}Installation and first browser}{29}{section.3.1}} +\newlabel{sec:inst-first-brows}{{3.1}{29}{Installation and first browser\relax }{section.3.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces File finder as a Glamour implementation. }}{30}{figure.3.1}} +\newlabel{fig:casestudies/file_finder}{{3.1}{30}{File finder as a Glamour implementation. \label {fig:casestudies/file_finder}\relax }{figure.3.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {3.2}Tutorial: Implementing a code browser}{32}{section.3.2}} +\@writefile{toc}{\contentsline {subsection}{Running example}{32}{subsection*.31}} +\newlabel{sec:tutorial/getting_started}{{3.2}{32}{Running example\relax }{subsection*.31}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Wireframe representation of a Smalltalk class navigator.}}{32}{figure.3.2}} +\newlabel{fig:classnavigator_wireframe}{{3.2}{32}{Wireframe representation of a Smalltalk class navigator}{figure.3.2}{}} +\@writefile{toc}{\contentsline {subsection}{Starting the Browser}{33}{subsection*.32}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Two-pane browser. When a package is selected in the left pane, the contained classes are shown on the right pane.}}{34}{figure.3.3}} +\newlabel{fig:showclasses}{{3.3}{34}{Two-pane browser. When a package is selected in the left pane, the contained classes are shown on the right pane}{figure.3.3}{}} +\@writefile{toc}{\contentsline {subsection}{Another Presentation}{35}{subsection*.33}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces Improved class navigator including a tree to display the packages and a list of method categories for the selected class.}}{36}{figure.3.4}} +\newlabel{fig:treeandcategories}{{3.4}{36}{ Improved class navigator including a tree to display the packages and a list of method categories for the selected class}{figure.3.4}{}} +\@writefile{toc}{\contentsline {subsection}{Multiple Origins}{36}{subsection*.34}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Complete code navigator. If no method category is selected, all methods of the class are displayed. Otherwise, only the methods that belong to that category are shown.}}{38}{figure.3.5}} +\newlabel{fig:codenavigator}{{3.5}{38}{Complete code navigator. If no method category is selected, all methods of the class are displayed. Otherwise, only the methods that belong to that category are shown}{figure.3.5}{}} +\@writefile{toc}{\contentsline {subsection}{Ports}{38}{subsection*.35}} +\@writefile{toc}{\contentsline {subsection}{Reusing Browsers}{38}{subsection*.36}} +\newlabel{sec:tutorial/reusing-browsers}{{3.2}{38}{Reusing Browsers\relax }{subsection*.36}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.6}{\ignorespaces Wireframe representation of a Smalltalk class editor.}}{39}{figure.3.6}} +\newlabel{fig:classbrowser_wireframe}{{3.6}{39}{Wireframe representation of a Smalltalk class editor}{figure.3.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.7}{\ignorespaces Composed browser that reuses the previously described class navigator to show the source of a selected method.}}{41}{figure.3.7}} +\newlabel{fig:composed-browser}{{3.7}{41}{Composed browser that reuses the previously described class navigator to show the source of a selected method}{figure.3.7}{}} +\@writefile{toc}{\contentsline {subsection}{Actions}{42}{subsection*.37}} +\newlabel{sec:tutorial/actions}{{3.2}{42}{Actions\relax }{subsection*.37}{}} +\@writefile{toc}{\contentsline {subsection}{Multiple Presentations}{42}{subsection*.38}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.8}{\ignorespaces Code editor sporting a Mondrian presentation in addition to a simple class list.}}{43}{figure.3.8}} +\newlabel{fig:mondrian-presentation}{{3.8}{43}{Code editor sporting a Mondrian presentation in addition to a simple class list}{figure.3.8}{}} +\@writefile{toc}{\contentsline {subsection}{Other Browsers}{43}{subsection*.39}} +\@writefile{lof}{\contentsline {figure}{\numberline {3.9}{\ignorespaces Subclass navigator using Miller Columns style browsing.}}{44}{figure.3.9}} +\newlabel{fig:finder}{{3.9}{44}{Subclass navigator using Miller Columns style browsing}{figure.3.9}{}} +\@writefile{toc}{\contentsline {subsection}{Tutorial Conclusion}{44}{subsection*.40}} +\@writefile{toc}{\contentsline {chapter}{\numberline {4}Using LDAP}{45}{chapter.4}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {4.1}Pr\'esentation du protocole LDAP}{45}{section.4.1}} +\@writefile{toc}{\contentsline {subsection}{Installation de LDAPlayer}{45}{subsection*.41}} +\@writefile{toc}{\contentsline {section}{\numberline {4.2}Les principales classes}{46}{section.4.2}} +\@writefile{toc}{\contentsline {paragraph}{D\'efinir une connexion.}{46}{paragraph*.42}} +\@writefile{toc}{\contentsline {subsection}{Chercher des informations}{48}{subsection*.43}} +\@writefile{toc}{\contentsline {subsection}{Modifier des attributs}{49}{subsection*.44}} +\@writefile{toc}{\contentsline {subsection}{Cr\'eer une entr\'ee dans l'annuaire}{51}{subsection*.45}} +\@writefile{toc}{\contentsline {subsection}{Supprimer une entr\'ee dans l'annuaire}{51}{subsection*.46}} +\@writefile{toc}{\contentsline {section}{\numberline {4.3}Pr\'esentation des classes principales}{52}{section.4.3}} +\@writefile{toc}{\contentsline {section}{\numberline {4.4}Conclusion}{52}{section.4.4}} +\@writefile{toc}{\contentsline {paragraph}{Liens utiles}{52}{paragraph*.47}} +\@writefile{toc}{\contentsline {chapter}{\numberline {5}Mondrian}{53}{chapter.5}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:mondrian}{{5}{53}{Mondrian\relax }{chapter.5}{}} +\@writefile{toc}{\contentsline {section}{\numberline {5.1}Introduction}{53}{section.5.1}} +\@writefile{toc}{\contentsline {section}{\numberline {5.2}First visualization}{53}{section.5.2}} +\@writefile{toc}{\contentsline {section}{\numberline {5.3}Visualizing the collection framework}{54}{section.5.3}} +\@writefile{toc}{\contentsline {section}{\numberline {5.4}Reshaping nodes}{55}{section.5.4}} +\@writefile{toc}{\contentsline {section}{\numberline {5.5}Multiple edges}{57}{section.5.5}} +\@writefile{toc}{\contentsline {section}{\numberline {5.6}Adding colors}{59}{section.5.6}} +\@writefile{toc}{\contentsline {section}{\numberline {5.7}More on colors}{60}{section.5.7}} +\@writefile{toc}{\contentsline {section}{\numberline {5.8}Popup view}{61}{section.5.8}} +\@writefile{toc}{\contentsline {section}{\numberline {5.9}Subviews}{62}{section.5.9}} +\@writefile{toc}{\contentsline {section}{\numberline {5.10}Forwarding events}{64}{section.5.10}} +\@writefile{toc}{\contentsline {section}{\numberline {5.11}Events}{65}{section.5.11}} +\@writefile{toc}{\contentsline {section}{\numberline {5.12}Interaction}{66}{section.5.12}} +\@writefile{toc}{\contentsline {section}{\numberline {5.13}Conclusion}{67}{section.5.13}} +\@writefile{toc}{\contentsline {chapter}{\numberline {6}DBXTalk}{69}{chapter.6}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {6.1}DBXTalk Driver Architecture}{69}{section.6.1}} +\@writefile{toc}{\contentsline {section}{\numberline {6.2}Installing DBXTalk OpenDBX Driver}{70}{section.6.2}} +\@writefile{toc}{\contentsline {section}{\numberline {6.3}Getting down to business with DBXTalk OpenDBXDriver}{71}{section.6.3}} +\@writefile{toc}{\contentsline {section}{\numberline {6.4}Creating a connection}{71}{section.6.4}} +\@writefile{toc}{\contentsline {subsection}{Connection special options}{72}{subsection*.48}} +\@writefile{toc}{\contentsline {part}{\numberline {II}Language}{75}{part.2}} +\@writefile{toc}{\contentsline {chapter}{\numberline {7}Handling exceptions}{77}{chapter.7}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {7.1}Ensuring execution}{78}{section.7.1}} +\@writefile{toc}{\contentsline {section}{\numberline {7.2}Handling non-local returns}{79}{section.7.2}} +\@writefile{toc}{\contentsline {section}{\numberline {7.3}Exception handlers}{80}{section.7.3}} +\@writefile{toc}{\contentsline {section}{\numberline {7.4}Error codes --- don't do this!}{81}{section.7.4}} +\@writefile{toc}{\contentsline {section}{\numberline {7.5}Specifying which Exceptions will be Handled}{82}{section.7.5}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.1}{\ignorespaces A small part of the Pharo\xspace exception hierarchy.}}{83}{figure.7.1}} +\newlabel{fig:hierarchy}{{7.1}{83}{A small part of the \pharo exception hierarchy.\figlabel {hierarchy}\relax }{figure.7.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7.6}Signaling an exception}{83}{section.7.6}} +\@writefile{toc}{\contentsline {section}{\numberline {7.7}How breakpoints are Implemented}{85}{section.7.7}} +\@writefile{toc}{\contentsline {section}{\numberline {7.8}How handlers are found}{86}{section.7.8}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.2}{\ignorespaces A Pharo\xspace execution stack.}}{87}{figure.7.2}} +\newlabel{fig:stack}{{7.2}{87}{A \pharo execution stack.\figlabel {stack}\relax }{figure.7.2}{}} +\@writefile{toc}{\contentsline {paragraph}{Nested Exceptions.}{88}{paragraph*.49}} +\@writefile{toc}{\contentsline {section}{\numberline {7.9}Handling exceptions}{89}{section.7.9}} +\@writefile{toc}{\contentsline {subsection}{Abandon the protected block}{89}{subsection*.50}} +\@writefile{toc}{\contentsline {subsection}{Return a value with \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{return:}}{90}{subsection*.51}} +\@writefile{toc}{\contentsline {subsection}{Retry a computation with \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{retry} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{retryUsing:}}{90}{subsection*.52}} +\@writefile{toc}{\contentsline {section}{\numberline {7.10}Resuming execution}{91}{section.7.10}} +\@writefile{toc}{\contentsline {subsection}{Example: Deprecation}{93}{subsection*.53}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.3}{\ignorespaces Sending a deprecated message.}}{93}{figure.7.3}} +\newlabel{fig:deprecation}{{7.3}{93}{Sending a deprecated message.\figlabel {deprecation}\relax }{figure.7.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7.11}Passing exceptions on}{94}{section.7.11}} +\newlabel{mth:objectPerformAll}{{7.1}{95}{\emph {Object>>performAll:}\relax }{lstlisting.7.1}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.1}\emph {Object>>performAll:}}{95}{lstlisting.7.1}} +\@writefile{toc}{\contentsline {section}{\numberline {7.12}Resending exceptions}{96}{section.7.12}} +\@writefile{toc}{\contentsline {section}{\numberline {7.13}Comparing {\textsf {\textup {outer}}} with {\textsf {\textup {pass}}}}{97}{section.7.13}} +\@writefile{toc}{\contentsline {section}{\numberline {7.14}Catching sets of exceptions}{97}{section.7.14}} +\@writefile{toc}{\contentsline {section}{\numberline {7.15}How exceptions are implemented}{98}{section.7.15}} +\@writefile{toc}{\contentsline {paragraph}{Storing Handlers.}{98}{paragraph*.54}} +\@writefile{toc}{\contentsline {paragraph}{Finding Handlers.}{99}{paragraph*.55}} +\@writefile{toc}{\contentsline {section}{\numberline {7.16}Other kinds of Exception}{101}{section.7.16}} +\@writefile{lof}{\contentsline {figure}{\numberline {7.4}{\ignorespaces The whole Pharo\xspace exception hierarchy.}}{102}{figure.7.4}} +\newlabel{fig:wholeHierarchy}{{7.4}{102}{The whole \pharo exception hierarchy.\figlabel {wholeHierarchy}\relax }{figure.7.4}{}} +\@writefile{toc}{\contentsline {section}{\numberline {7.17}When not to use Exceptions}{103}{section.7.17}} +\newlabel{mth:simplerObjectPerfromAll}{{7.2}{104}{\emph {Object>>performAll: revisited}\relax }{lstlisting.7.2}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {7.2}\emph {Object>>performAll: revisited}}{104}{lstlisting.7.2}} +\@writefile{toc}{\contentsline {section}{\numberline {7.18}Chapter Summary}{104}{section.7.18}} +\@writefile{toc}{\contentsline {paragraph}{Acknowledgments.}{105}{paragraph*.56}} +\@writefile{toc}{\contentsline {chapter}{\numberline {8}Block and Dynamic Behavior of Smalltalk-Runtime}{107}{chapter.8}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:blocks}{{8}{107}{Block and Dynamic Behavior of Smalltalk-Runtime\relax }{chapter.8}{}} +\@writefile{toc}{\contentsline {section}{\numberline {8.1}Basics}{107}{section.8.1}} +\@writefile{toc}{\contentsline {section}{\numberline {8.2}Variables and Blocks}{108}{section.8.2}} +\@writefile{toc}{\contentsline {section}{\numberline {8.3}Basics on Return}{110}{section.8.3}} +\@writefile{toc}{\contentsline {section}{\numberline {8.4}Returning from inside a block}{110}{section.8.4}} +\@writefile{toc}{\contentsline {section}{\numberline {8.5}Storing a block}{112}{section.8.5}} +\@writefile{toc}{\contentsline {section}{\numberline {8.6}may be to trash}{112}{section.8.6}} +\@writefile{toc}{\contentsline {paragraph}{}{112}{paragraph*.57}} +\@writefile{toc}{\contentsline {section}{\numberline {8.7}Lexical Closure}{113}{section.8.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {8.1}{\ignorespaces blockLocalTemp Execution}}{113}{figure.8.1}} +\newlabel{fig:blockLocalTempExecution}{{8.1}{113}{blockLocalTemp Execution\relax }{figure.8.1}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {8.2}{\ignorespaces blockOutsideTemp Execution}}{114}{figure.8.2}} +\newlabel{fig:blockClosureOutsideTemp}{{8.2}{114}{blockOutsideTemp Execution\relax }{figure.8.2}{}} +\@writefile{toc}{\contentsline {section}{\numberline {8.8}Conclusion}{115}{section.8.8}} +\@writefile{toc}{\contentsline {chapter}{\numberline {9}Fun with Floats}{119}{chapter.9}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {9.1}Never test equality on floats}{119}{section.9.1}} +\@writefile{toc}{\contentsline {paragraph}{About \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{closeTo:}.}{120}{paragraph*.58}} +\@writefile{toc}{\contentsline {paragraph}{About Scaled Decimals.}{120}{paragraph*.59}} +\@writefile{toc}{\contentsline {section}{\numberline {9.2}Disecting a Float}{120}{section.9.2}} +\@writefile{toc}{\contentsline {paragraph}{Building a Float.}{121}{paragraph*.60}} +\@writefile{toc}{\contentsline {section}{\numberline {9.3}With floats, printing is inexact}{124}{section.9.3}} +\@writefile{toc}{\contentsline {section}{\numberline {9.4}Float rounding is also inexact}{125}{section.9.4}} +\@writefile{toc}{\contentsline {section}{\numberline {9.5}Fun with Inexact representations}{126}{section.9.5}} +\@writefile{toc}{\contentsline {section}{\numberline {9.6}Conclusion}{127}{section.9.6}} +\@writefile{toc}{\contentsline {part}{\numberline {III}Web}{129}{part.3}} +\@writefile{toc}{\contentsline {part}{\numberline {IV}Libraries}{131}{part.4}} +\@writefile{toc}{\contentsline {chapter}{\numberline {10}Files with FileSystem }{133}{chapter.10}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:filesystem}{{10}{133}{Files with FileSystem \relax }{chapter.10}{}} +\@writefile{toc}{\contentsline {section}{\numberline {10.1}Getting started}{133}{section.10.1}} +\@writefile{toc}{\contentsline {section}{\numberline {10.2}Navigating the Filesystem}{134}{section.10.2}} +\@writefile{toc}{\contentsline {subsection}{Opening Read- and Write-Streams}{135}{subsection*.61}} +\@writefile{toc}{\contentsline {section}{\numberline {10.3}Design }{136}{section.10.3}} +\@writefile{toc}{\contentsline {subsection}{Path}{136}{subsection*.62}} +\@writefile{toc}{\contentsline {subsection}{Filesystem}{137}{subsection*.63}} +\@writefile{toc}{\contentsline {subsection}{Reference}{137}{subsection*.64}} +\@writefile{toc}{\contentsline {subsection}{Locator}{138}{subsection*.65}} +\@writefile{toc}{\contentsline {subsection}{Enumeration}{138}{subsection*.66}} +\@writefile{toc}{\contentsline {subsection}{Visitors}{139}{subsection*.67}} +\@writefile{toc}{\contentsline {chapter}{\numberline {11}Announcements: an Object Dependency Framework}{141}{chapter.11}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:announcements}{{11}{141}{Announcements: an Object Dependency Framework\relax }{chapter.11}{}} +\@writefile{toc}{\contentsline {section}{\numberline {11.1}A word about Component Coupling}{141}{section.11.1}} +\@writefile{toc}{\contentsline {paragraph}{An Example.}{142}{paragraph*.68}} +\newlabel{mth:defaultlabel}{{11.1}{142}{\emph {Defining an announcer.}\relax }{lstlisting.11.1}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {11.1}\emph {Defining an announcer.}}{142}{lstlisting.11.1}} +\newlabel{cls:defaultlabel}{{11.2}{142}{\emph {Defining a specific Announcement.}\relax }{lstlisting.11.2}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {11.2}\emph {Defining a specific Announcement.}}{142}{lstlisting.11.2}} +\newlabel{mth:defaultlabel}{{11.3}{142}{\emph {}\relax }{lstlisting.11.3}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {11.3}\emph {}}{142}{lstlisting.11.3}} +\newlabel{mth:defaultlabel}{{11.4}{143}{\emph {Announcing an event.}\relax }{lstlisting.11.4}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {11.4}\emph {Announcing an event.}}{143}{lstlisting.11.4}} +\@writefile{toc}{\contentsline {chapter}{\numberline {12}Sockets}{145}{chapter.12}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:sockets}{{12}{145}{Sockets\relax }{chapter.12}{}} +\@writefile{toc}{\contentsline {section}{\numberline {12.1}Basic Concepts}{145}{section.12.1}} +\@writefile{toc}{\contentsline {subsection}{Socket}{145}{subsection*.69}} +\@writefile{lof}{\contentsline {figure}{\numberline {12.1}{\ignorespaces Inter-Process Remote Communication Through Sockets.}}{146}{figure.12.1}} +\newlabel{fig:socketConcept}{{12.1}{146}{Inter-Process Remote Communication Through Sockets}{figure.12.1}{}} +\@writefile{toc}{\contentsline {subsection}{TCP/IP vs. UDP/IP}{146}{subsection*.70}} +\@writefile{toc}{\contentsline {section}{\numberline {12.2}A Simple TCP Client}{147}{section.12.2}} +\@writefile{toc}{\contentsline {subsection}{Create a TCP Socket}{147}{subsection*.71}} +\@writefile{toc}{\contentsline {subsection}{Connect a TCP Socket to some Server}{147}{subsection*.72}} +\newlabel{scr:creatingSocketAddress}{{12.1}{148}{\emph {Creating a Socket Address}\relax }{lstlisting.12.1}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.1}\emph {Creating a Socket Address}}{148}{lstlisting.12.1}} +\newlabel{scr:connectingTcpSocket}{{12.2}{148}{\emph {Connecting a TCP Socket to ESUG Server.}\relax }{lstlisting.12.2}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.2}\emph {Connecting a TCP Socket to ESUG Server.}}{148}{lstlisting.12.2}} +\@writefile{toc}{\contentsline {subsection}{Exchange Data with Server}{148}{subsection*.73}} +\newlabel{sec:exchangeData}{{12.2}{148}{Exchange Data with Server\relax }{subsection*.73}{}} +\newlabel{scr:dataExhangeWithTcpSocket}{{12.3}{148}{\emph {Exchanging Data with some Server through a TCP Socket.}\relax }{lstlisting.12.3}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.3}\emph {Exchanging Data with some Server through a TCP Socket.}}{148}{lstlisting.12.3}} +\newlabel{scr:dataReceptionTimeOut}{{12.4}{149}{\emph {Bounding the Maximum Time for Data Reception.}\relax }{lstlisting.12.4}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.4}\emph {Bounding the Maximum Time for Data Reception.}}{149}{lstlisting.12.4}} +\@writefile{toc}{\contentsline {subsection}{Close a Socket}{149}{subsection*.74}} +\newlabel{scr:script:closeAndDestroy}{{12.5}{149}{\emph {Closing a TCP Socket After Connection to a Web Site.}\relax }{lstlisting.12.5}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.5}\emph {Closing a TCP Socket After Connection to a Web Site.}}{149}{lstlisting.12.5}} +\@writefile{toc}{\contentsline {section}{\numberline {12.3}A Simple TCP Server}{150}{section.12.3}} +\@writefile{toc}{\contentsline {subsection}{TCP Socket Server Life-cyle}{151}{subsection*.75}} +\@writefile{toc}{\contentsline {subsection}{Serving Basic Example}{151}{subsection*.76}} +\newlabel{scr:servingBasicExample}{{12.6}{151}{\emph {Basic Echo Server.}\relax }{lstlisting.12.6}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.6}\emph {Basic Echo Server.}}{151}{lstlisting.12.6}} +\newlabel{scr:echoClient}{{12.7}{152}{\emph {Echo Client.}\relax }{lstlisting.12.7}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.7}\emph {Echo Client.}}{152}{lstlisting.12.7}} +\@writefile{toc}{\contentsline {subsection}{Echo Server Class}{152}{subsection*.77}} +\newlabel{cls:echoServerClassDef}{{12.8}{153}{\emph {\ct !EchoServer! Class Definition}\relax }{lstlisting.12.8}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.8}\emph {\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer! Class Definition}}{153}{lstlisting.12.8}} +\newlabel{mth:meth:serverInitialize}{{12.9}{153}{\emph {The \ct !EchoServer>>>initialize! Method}\relax }{lstlisting.12.9}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.9}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>initialize! Method}}{153}{lstlisting.12.9}} +\newlabel{mth:meth:isRunningRead}{{12.10}{153}{\emph {The \ct !EchoServer>>>isRunning! Read Accessor}\relax }{lstlisting.12.10}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.10}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>isRunning! Read Accessor}}{153}{lstlisting.12.10}} +\newlabel{mth:meth:isRunningWrite}{{12.11}{153}{\emph {The \ct !EchoServer>>>isRunning:! Write Accessor}\relax }{lstlisting.12.11}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.11}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>isRunning:! Write Accessor}}{153}{lstlisting.12.11}} +\newlabel{mth:meth:stop}{{12.12}{153}{\emph {The \ct !EchoServer>>>stop! Method}\relax }{lstlisting.12.12}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.12}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>stop! Method}}{153}{lstlisting.12.12}} +\newlabel{mth:meth:serve}{{12.13}{153}{\emph {The \ct !EchoServer>>>serve! Method}\relax }{lstlisting.12.13}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.13}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>serve! Method}}{153}{lstlisting.12.13}} +\newlabel{mth:meth:start}{{12.14}{154}{\emph {The \ct !EchoServer>>>start! Method}\relax }{lstlisting.12.14}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.14}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>start! Method}}{154}{lstlisting.12.14}} +\newlabel{mth:meth:interactOnConnection}{{12.15}{154}{\emph {The \ct !EchoServer>>>interactOnConnection! Method}\relax }{lstlisting.12.15}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.15}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>interactOnConnection! Method}}{154}{lstlisting.12.15}} +\newlabel{mth:meth:interactUsing}{{12.16}{154}{\emph {The \ct !EchoServer>>>interactUsing:! Method}\relax }{lstlisting.12.16}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.16}\emph {The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!EchoServer>>>interactUsing:! Method}}{154}{lstlisting.12.16}} +\@writefile{toc}{\contentsline {section}{\numberline {12.4}SocketStream}{155}{section.12.4}} +\@writefile{toc}{\contentsline {subsection}{Client Side SocketStream}{155}{subsection*.78}} +\newlabel{scr:script:streamGetLine}{{12.17}{155}{\emph {Getting the first line of a web page using \ct !SocketStream!.}\relax }{lstlisting.12.17}{}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {12.17}\emph {Getting the first line of a web page using \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]!SocketStream!.}}{155}{lstlisting.12.17}} +\@writefile{toc}{\contentsline {section}{\numberline {12.5}A Basic Chat Application}{156}{section.12.5}} +\@writefile{toc}{\contentsline {section}{\numberline {12.6}Distributed Object Applications}{156}{section.12.6}} +\@writefile{toc}{\contentsline {section}{\numberline {12.7}Chapter summary}{156}{section.12.7}} +\@writefile{toc}{\contentsline {chapter}{\numberline {13}The Settings Framework}{157}{chapter.13}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {13.1}Settings in a Nutshell}{157}{section.13.1}} +\@writefile{toc}{\contentsline {subsubsection}{Vocabulary}{158}{subsubsection*.79}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.1}{\ignorespaces A package defines customization points. Such customization points are described with Settings instances. The \textit {Settings Browser}\xspace collects the description and presents them to the user.}}{158}{figure.13.1}} +\newlabel{fig:modularflow}{{13.1}{158}{A package defines customization points. Such customization points are described with Settings instances. The \setbrowser collects the description and presents them to the user}{figure.13.1}{}} +\@writefile{toc}{\contentsline {section}{\numberline {13.2}The Settings Browser}{159}{section.13.2}} +\newlabel{sec:TheSettingsBrowser}{{13.2}{159}{The Settings Browser\relax }{section.13.2}{}} +\@writefile{toc}{\contentsline {subsection}{Browsing and changing preference values}{159}{subsection*.80}} +\newlabel{sec:browsing-settings}{{13.2}{159}{Browsing and changing preference values\relax }{subsection*.80}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.2}{\ignorespaces The \textit {Settings Browser}\xspace .}}{160}{figure.13.2}} +\newlabel{fig:fig:TheSettingsBrowser}{{13.2}{160}{The \setbrowser }{figure.13.2}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.3}{\ignorespaces The contextual popup menu}}{160}{figure.13.3}} +\newlabel{fig:fig:TheSettingsBrowserPopupMenu}{{13.3}{160}{The contextual popup menu\relax }{figure.13.3}{}} +\@writefile{toc}{\contentsline {subsection}{Searching and filtering settings}{161}{subsection*.81}} +\@writefile{toc}{\contentsline {section}{\numberline {13.3}Declaring a setting}{161}{section.13.3}} +\newlabel{sec:DeclaringASetting}{{13.3}{161}{Declaring a setting\relax }{section.13.3}{}} +\@writefile{toc}{\contentsline {paragraph}{}{162}{paragraph*.82}} +\@writefile{toc}{\contentsline {subsection}{The header}{162}{subsection*.83}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.4}{\ignorespaces The \textit {caseSensitiveFinds} setting}}{163}{figure.13.4}} +\newlabel{fig:fig:caseSensitiveFinds1}{{13.4}{163}{The \textit {caseSensitiveFinds} setting\relax }{figure.13.4}{}} +\@writefile{toc}{\contentsline {subsection}{The pragma}{163}{subsection*.84}} +\@writefile{toc}{\contentsline {subsection}{The setting configuration}{163}{subsection*.85}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.5}{\ignorespaces A first simple version of the \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{caseSensitiveFinds} setting.}}{164}{figure.13.5}} +\newlabel{fig:fig:caseSensitiveFinds2}{{13.5}{164}{A first simple version of the \ct {caseSensitiveFinds} setting}{figure.13.5}{}} +\@writefile{toc}{\contentsline {subsection}{More about the target}{165}{subsection*.86}} +\@writefile{toc}{\contentsline {subsection}{More about default values}{166}{subsection*.87}} +\@writefile{toc}{\contentsline {section}{\numberline {13.4}Organizing your settings}{167}{section.13.4}} +\@writefile{toc}{\contentsline {subsection}{Declaring a parent}{167}{subsection*.88}} +\@writefile{toc}{\contentsline {subsection}{Declaring a group}{167}{subsection*.89}} +\@writefile{toc}{\contentsline {subsection}{Declaring a sub-tree}{167}{subsection*.90}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.6}{\ignorespaces Declaring a subtree in one method: the \textit {Configurable formatter} setting example.}}{168}{figure.13.6}} +\newlabel{fig:fig:configurableFormatter}{{13.6}{168}{Declaring a subtree in one method: the \textit {Configurable formatter} setting example}{figure.13.6}{}} +\@writefile{toc}{\contentsline {subsubsection}{Optional sub-tree}{168}{subsubsection*.91}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.7}{\ignorespaces Example of optional subtree. Right -- no gradient is selected. Left -- gradient is selected so additional preferences are available.}}{169}{figure.13.7}} +\newlabel{fig:fig:optional-subtree}{{13.7}{169}{Example of optional subtree. Right -- no gradient is selected. Left -- gradient is selected so additional preferences are available}{figure.13.7}{}} +\@writefile{toc}{\contentsline {subsection}{Ordering your settings}{170}{subsection*.92}} +\@writefile{toc}{\contentsline {section}{\numberline {13.5}Providing more precise value domain}{171}{section.13.5}} +\@writefile{toc}{\contentsline {subsection}{Declaring a range setting}{171}{subsection*.93}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.8}{\ignorespaces Example of range setting.}}{171}{figure.13.8}} +\newlabel{fig:fig:range-setting}{{13.8}{171}{Example of range setting}{figure.13.8}{}} +\@writefile{toc}{\contentsline {subsection}{Selecting among a list}{172}{subsection*.94}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.9}{\ignorespaces Example of a list setting.}}{172}{figure.13.9}} +\newlabel{fig:fig:window-position-strategy-list-setting}{{13.9}{172}{Example of a list setting}{figure.13.9}{}} +\@writefile{toc}{\contentsline {section}{\numberline {13.6}Launching a script}{173}{section.13.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.10}{\ignorespaces Example of launchers.}}{174}{figure.13.10}} +\newlabel{fig:fig:launcher}{{13.10}{174}{Example of launchers}{figure.13.10}{}} +\@writefile{toc}{\contentsline {section}{\numberline {13.7}Setting styles management}{175}{section.13.7}} +\newlabel{sec:SettingStylesManagement}{{13.7}{175}{Setting styles management\relax }{section.13.7}{}} +\@writefile{toc}{\contentsline {subsection}{Scripting settings}{175}{subsection*.95}} +\@writefile{toc}{\contentsline {subsection}{Integrating a style in the \textit {Settings Browser}\xspace }{176}{subsection*.96}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.11}{\ignorespaces The style load dialog with your own style}}{176}{figure.13.11}} +\newlabel{fig:fig:load-style-dialog}{{13.11}{176}{The style load dialog with your own style\relax }{figure.13.11}{}} +\@writefile{toc}{\contentsline {section}{\numberline {13.8}Extending the \textit {Settings Browser}\xspace }{177}{section.13.8}} +\newlabel{sec:ExtendingTheSettingsBrowser}{{13.8}{177}{Extending the \setbrowser \relax }{section.13.8}{}} +\@writefile{toc}{\contentsline {subsection}{Declaring selection settings individually}{177}{subsection*.97}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.12}{\ignorespaces The secondary selection settings declared with basic setting values}}{178}{figure.13.12}} +\newlabel{fig:fig:secondarySelectionColorV1}{{13.12}{178}{The secondary selection settings declared with basic setting values\relax }{figure.13.12}{}} +\@writefile{toc}{\contentsline {subsection}{An improved selection preference design}{178}{subsection*.98}} +\@writefile{lof}{\contentsline {figure}{\numberline {13.13}{\ignorespaces The text selection settings implemented with a specific preference class}}{181}{figure.13.13}} +\newlabel{fig:fig:textSelectionColorSettings}{{13.13}{181}{The text selection settings implemented with a specific preference class\relax }{figure.13.13}{}} +\@writefile{toc}{\contentsline {section}{\numberline {13.9}Conclusion}{181}{section.13.9}} +\@writefile{toc}{\contentsline {chapter}{\numberline {14}Regular Expressions in Pharo\xspace }{183}{chapter.14}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:regex}{{14}{183}{Regular Expressions in \pharo \relax }{chapter.14}{}} +\@writefile{toc}{\contentsline {section}{\numberline {14.1}Tutorial example\,---\,generating a site map}{184}{section.14.1}} +\@writefile{toc}{\contentsline {subsection}{Accessing the web directory}{184}{subsection*.99}} +\@writefile{lof}{\contentsline {figure}{\numberline {14.1}{\ignorespaces A WebDir instance}}{185}{figure.14.1}} +\newlabel{fig:aWebDir}{{14.1}{185}{A WebDir instance\relax }{figure.14.1}{}} +\@writefile{toc}{\contentsline {subsection}{Pattern matching HTML files}{185}{subsection*.100}} +\@writefile{toc}{\contentsline {subsection}{Caching the regex}{186}{subsection*.101}} +\@writefile{toc}{\contentsline {subsection}{Accessing web pages}{187}{subsection*.102}} +\@writefile{toc}{\contentsline {subsection}{String substitutions}{187}{subsection*.103}} +\@writefile{toc}{\contentsline {subsection}{Extracting regex matches}{188}{subsection*.104}} +\@writefile{toc}{\contentsline {subsection}{More string substitutions}{190}{subsection*.105}} +\@writefile{toc}{\contentsline {subsection}{Generating the site map}{190}{subsection*.106}} +\@writefile{toc}{\contentsline {section}{\numberline {14.2}Regex syntax}{191}{section.14.2}} +\@writefile{lof}{\contentsline {figure}{\numberline {14.2}{\ignorespaces A small site map}}{192}{figure.14.2}} +\newlabel{fig:PBE-toc}{{14.2}{192}{A small site map\relax }{figure.14.2}{}} +\@writefile{toc}{\contentsline {subsection}{Character classes}{194}{subsection*.107}} +\@writefile{lot}{\contentsline {table}{\numberline {14.1}{\ignorespaces Regex Syntax in a Nutshell}}{195}{table.14.1}} +\newlabel{tab:regexsyntax}{{14.1}{195}{Regex Syntax in a Nutshell\tablabel {regexsyntax}\relax }{table.14.1}{}} +\@writefile{lot}{\contentsline {table}{\numberline {14.2}{\ignorespaces Regex character classes}}{196}{table.14.2}} +\newlabel{tab:charclasses}{{14.2}{196}{Regex character classes\tablabel {charclasses}\relax }{table.14.2}{}} +\@writefile{toc}{\contentsline {subsection}{Special character classes}{196}{subsection*.108}} +\@writefile{toc}{\contentsline {subsection}{Matching boundaries}{197}{subsection*.109}} +\@writefile{lot}{\contentsline {table}{\numberline {14.3}{\ignorespaces Primitives to match string boundaries}}{197}{table.14.3}} +\newlabel{tab:boundaries}{{14.3}{197}{Primitives to match string boundaries\tablabel {boundaries}\relax }{table.14.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {14.3}Regex API}{197}{section.14.3}} +\@writefile{toc}{\contentsline {subsection}{Matching prefixes and ignoring case}{197}{subsection*.110}} +\@writefile{toc}{\contentsline {subsection}{Enumeration interface}{198}{subsection*.111}} +\@writefile{toc}{\contentsline {subsection}{Replacement and translation}{198}{subsection*.112}} +\@writefile{toc}{\contentsline {subsection}{Lower-level interface}{199}{subsection*.113}} +\@writefile{toc}{\contentsline {subsection}{The Matcher}{199}{subsection*.114}} +\@writefile{toc}{\contentsline {subsection}{Matching}{199}{subsection*.115}} +\@writefile{toc}{\contentsline {subsection}{Subexpression matches}{200}{subsection*.116}} +\@writefile{toc}{\contentsline {subsection}{Enumeration and Replacement}{201}{subsection*.117}} +\@writefile{toc}{\contentsline {subsection}{Error Handling}{202}{subsection*.118}} +\@writefile{toc}{\contentsline {section}{\numberline {14.4}Implementation Notes by Vassili Bykov}{203}{section.14.4}} +\@writefile{toc}{\contentsline {paragraph}{What to look at first.}{203}{paragraph*.119}} +\@writefile{toc}{\contentsline {paragraph}{Caveats}{203}{paragraph*.120}} +\@writefile{toc}{\contentsline {paragraph}{Acknowledgments}{203}{paragraph*.121}} +\@writefile{toc}{\contentsline {section}{\numberline {14.5}Chapter Summary}{203}{section.14.5}} +\@writefile{toc}{\contentsline {part}{\numberline {V}Source Management}{205}{part.5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {15}Versioning your code with Monticello\xspace }{207}{chapter.15}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {15.1}Basic usage}{208}{section.15.1}} +\@writefile{toc}{\contentsline {subsection}{Running example --- perfect numbers}{208}{subsection*.122}} +\@writefile{toc}{\contentsline {subsection}{Launching Monticello\xspace }{208}{subsection*.123}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.1}{\ignorespaces The Monticello\xspace Browser.}}{209}{figure.15.1}} +\newlabel{fig:monticelloMain}{{15.1}{209}{The \Mont Browser.\figlabel {monticelloMain}\relax }{figure.15.1}{}} +\@writefile{toc}{\contentsline {subsection}{Creating a package}{209}{subsection*.124}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.2}{\ignorespaces Creating the Perfect package.}}{209}{figure.15.2}} +\newlabel{fig:perfect}{{15.2}{209}{Creating the Perfect package.\figlabel {perfect}\relax }{figure.15.2}{}} +\@writefile{toc}{\contentsline {subsection}{Committing changes}{210}{subsection*.125}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.3}{\ignorespaces You may set a new version name and a commit message when you save a version of a package.}}{211}{figure.15.3}} +\newlabel{fig:saving}{{15.3}{211}{You may set a new version name and a commit message when you save a version of a package.\figlabel {saving}\relax }{figure.15.3}{}} +\@writefile{toc}{\contentsline {subsection}{Class extensions}{211}{subsection*.126}} +\@writefile{toc}{\contentsline {subsection}{``Clean'' and ``Dirty'' packages}{212}{subsection*.127}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.4}{\ignorespaces Modifying our Perfect package will ``dirty'' it.}}{212}{figure.15.4}} +\newlabel{fig:dirty}{{15.4}{212}{Modifying our Perfect package will ``dirty'' it.\figlabel {dirty}\relax }{figure.15.4}{}} +\@writefile{toc}{\contentsline {subsection}{The Repository inspector}{212}{subsection*.128}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.5}{\ignorespaces A repository inspector\xspace .}}{213}{figure.15.5}} +\newlabel{fig:repositoryinspector}{{15.5}{213}{A \RI .\figlabel {repositoryinspector}\relax }{figure.15.5}{}} +\@writefile{toc}{\contentsline {subsection}{Loading, unloading and updating packages}{214}{subsection*.129}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.6}{\ignorespaces Unloading a package.}}{214}{figure.15.6}} +\newlabel{fig:unload}{{15.6}{214}{Unloading a package.\figlabel {unload}\relax }{figure.15.6}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.7}{\ignorespaces Loading an earlier version.}}{215}{figure.15.7}} +\newlabel{fig:loading}{{15.7}{215}{Loading an earlier version.\figlabel {loading}\relax }{figure.15.7}{}} +\@writefile{toc}{\contentsline {subsection}{Branching}{215}{subsection*.130}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.8}{\ignorespaces Unsaved changes warning.}}{216}{figure.15.8}} +\newlabel{fig:unsavedWarning}{{15.8}{216}{Unsaved changes warning.\figlabel {unsavedWarning}\relax }{figure.15.8}{}} +\@writefile{toc}{\contentsline {subsection}{Merging}{216}{subsection*.131}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.9}{\ignorespaces Newer versions warning.}}{217}{figure.15.9}} +\newlabel{fig:newerWarning}{{15.9}{217}{Newer versions warning.\figlabel {newerWarning}\relax }{figure.15.9}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.10}{\ignorespaces Versions 2 and 3 are separate branches of version 1.}}{217}{figure.15.10}} +\newlabel{fig:branch}{{15.10}{217}{Versions 2 and 3 are separate branches of version 1.\figlabel {branch}\relax }{figure.15.10}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.11}{\ignorespaces Branching (left) and merging (right).}}{218}{figure.15.11}} +\newlabel{fig:branching-merging}{{15.11}{218}{Branching (left) and merging (right).\figlabel {branching-merging}\relax }{figure.15.11}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.12}{\ignorespaces Select a separate branch (in bold) to be merged.}}{218}{figure.15.12}} +\newlabel{fig:mergeButton}{{15.12}{218}{Select a separate branch (in bold) to be merged.\figlabel {mergeButton}\relax }{figure.15.12}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.13}{\ignorespaces Version 2 of the \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{Perfect} package being merged with the current version 3. }}{219}{figure.15.13}} +\newlabel{fig:mergeTool}{{15.13}{219}{Version 2 of the \ct {Perfect} package being merged with the current version 3. \on {This is a major fail! The old merge tool used to show deleted text striked through. Now, colour blind people will see no difference at all!} \figlabel {mergeTool}\relax }{figure.15.13}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.14}{\ignorespaces Keeping and rejecting changes. }}{220}{figure.15.14}} +\newlabel{fig:keepReject}{{15.14}{220}{Keeping and rejecting changes. \figlabel {keepReject}\relax }{figure.15.14}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.15}{\ignorespaces All older versions are now ancestors of merged version 4. }}{220}{figure.15.15}} +\newlabel{fig:merged}{{15.15}{220}{All older versions are now ancestors of merged version 4. \figlabel {merged}\relax }{figure.15.15}{}} +\@writefile{toc}{\contentsline {section}{\numberline {15.2}Exploring Monticello\xspace repositories}{221}{section.15.2}} +\newlabel{sec:monti:exploring}{{15.2}{221}{Exploring \Mont repositories\relax }{section.15.2}{}} +\@writefile{toc}{\contentsline {subsection}{Browse}{221}{subsection*.132}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.16}{\ignorespaces The snapshot browser reveals that the \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{Perfect} package extends the class \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{Integer} with 2 methods.}}{221}{figure.15.16}} +\newlabel{fig:packageviewer}{{15.16}{221}{The snapshot browser reveals that the \ct {Perfect} package extends the class \ct {Integer} with 2 methods.\figlabel {packageviewer}\relax }{figure.15.16}{}} +\@writefile{toc}{\contentsline {subsection}{Changes}{222}{subsection*.133}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.17}{\ignorespaces The patch browser shows the difference between the code in the image and the most recently committed version.}}{222}{figure.15.17}} +\newlabel{fig:patchbrowser}{{15.17}{222}{The patch browser shows the difference between the code in the image and the most recently committed version.\figlabel {patchbrowser}\relax }{figure.15.17}{}} +\@writefile{toc}{\contentsline {subsection}{History}{223}{subsection*.134}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.18}{\ignorespaces The version history viewer provides information about the various versions of a package.}}{223}{figure.15.18}} +\newlabel{fig:historyviewer}{{15.18}{223}{The version history viewer provides information about the various versions of a package.\figlabel {historyviewer}\relax }{figure.15.18}{}} +\@writefile{toc}{\contentsline {section}{\numberline {15.3}Advanced topics}{223}{section.15.3}} +\newlabel{sec:monti:advanced}{{15.3}{223}{Advanced topics\relax }{section.15.3}{}} +\@writefile{toc}{\contentsline {subsection}{Backporting}{223}{subsection*.135}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.19}{\ignorespaces Change X is backported from version C to version A, producing a new branch D. D can then be merged into B, without affecting C.}}{224}{figure.15.19}} +\newlabel{fig:backport}{{15.19}{224}{Change X is backported from version C to version A, producing a new branch D. D can then be merged into B, without affecting C.\figlabel {backport}\relax }{figure.15.19}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.20}{\ignorespaces Backporting changes from version 3 to version 1 of the \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{Perfect} package.}}{225}{figure.15.20}} +\newlabel{fig:changes}{{15.20}{225}{Backporting changes from version 3 to version 1 of the \ct {Perfect} package.\figlabel {changes}\relax }{figure.15.20}{}} +\@writefile{toc}{\contentsline {subsection}{Dependencies}{226}{subsection*.136}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.21}{\ignorespaces Dependencies in Pier.}}{226}{figure.15.21}} +\newlabel{fig:dependencies}{{15.21}{226}{Dependencies in Pier.\figlabel {dependencies}\relax }{figure.15.21}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.22}{\ignorespaces \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{NewPerfect-All} requires \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{NewPerfect-Extensions} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{NewPerfect-Tests}.}}{227}{figure.15.22}} +\newlabel{fig:perfectDependencies}{{15.22}{227}{\ct {NewPerfect-All} requires \ct {NewPerfect-Extensions} and \ct {NewPerfect-Tests}.\figlabel {perfectDependencies}\relax }{figure.15.22}{}} +\@writefile{toc}{\contentsline {subsection}{Class initialization}{228}{subsection*.137}} +\@writefile{toc}{\contentsline {section}{\numberline {15.4}Getting a change set from two versions}{229}{section.15.4}} +\@writefile{toc}{\contentsline {section}{\numberline {15.5}Kinds of repositories}{230}{section.15.5}} +\newlabel{sec:monti:repositories}{{15.5}{230}{Kinds of repositories\relax }{section.15.5}{}} +\@writefile{toc}{\contentsline {paragraph}{HTTP.}{230}{paragraph*.138}} +\@writefile{toc}{\contentsline {paragraph}{FTP.}{230}{paragraph*.139}} +\@writefile{toc}{\contentsline {paragraph}{GOODS.}{231}{paragraph*.140}} +\@writefile{toc}{\contentsline {paragraph}{Directory.}{231}{paragraph*.141}} +\@writefile{toc}{\contentsline {paragraph}{Directory with Subdirectories.}{231}{paragraph*.142}} +\@writefile{toc}{\contentsline {paragraph}{SMTP.}{231}{paragraph*.143}} +\@writefile{toc}{\contentsline {paragraph}{Programmatically adding repositories}{231}{paragraph*.144}} +\@writefile{toc}{\contentsline {subsection}{Using SqueakSource\xspace }{232}{subsection*.145}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.23}{\ignorespaces SqueakSource\xspace , the online Monticello\xspace code repository.}}{232}{figure.15.23}} +\newlabel{fig:squeaksource}{{15.23}{232}{\sqsrc , the online \Mont code repository.\figlabel {squeaksource}\relax }{figure.15.23}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {15.24}{\ignorespaces Repositories under SqueakSource\xspace are highly configurable.}}{233}{figure.15.24}} +\newlabel{fig:squeaksourcesetting}{{15.24}{233}{Repositories under \sqsrc are highly configurable.\figlabel {squeaksourcesetting}\relax }{figure.15.24}{}} +\@writefile{toc}{\contentsline {section}{\numberline {15.6}The .mcz file format}{234}{section.15.6}} +\@writefile{toc}{\contentsline {paragraph}{File contents}{234}{paragraph*.146}} +\@writefile{toc}{\contentsline {paragraph}{Source code encoding}{235}{paragraph*.147}} +\@writefile{toc}{\contentsline {paragraph}{Metadata encoding}{235}{paragraph*.148}} +\@writefile{toc}{\contentsline {section}{\numberline {15.7}Chapter Summary}{235}{section.15.7}} +\@writefile{toc}{\contentsline {chapter}{\numberline {16}Gofer: Scripting package loading}{237}{chapter.16}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:gofer}{{16}{237}{Gofer: Scripting package loading\relax }{chapter.16}{}} +\@writefile{toc}{\contentsline {section}{\numberline {16.1}Preamble: Package management system}{237}{section.16.1}} +\@writefile{toc}{\contentsline {paragraph}{Packages.}{237}{paragraph*.149}} +\@writefile{lof}{\contentsline {figure}{\numberline {16.1}{\ignorespaces The browser shows that the class \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{String} gets the methods \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{asUrl} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{asUrlRelativeTo:} from the package \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{network-url}}}{238}{figure.16.1}} +\@writefile{toc}{\contentsline {paragraph}{Package Versioning System.}{238}{paragraph*.150}} +\@writefile{lof}{\contentsline {figure}{\numberline {16.2}{\ignorespaces The change browser shows that the method \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{String>>asUrl} has changed.}}{239}{figure.16.2}} +\@writefile{toc}{\contentsline {paragraph}{Distributed architecture of Monticello.}{239}{paragraph*.151}} +\@writefile{lof}{\contentsline {figure}{\numberline {16.3}{\ignorespaces (left)Typical setup with clean and dirty packages loaded and cached --- (right) Package published. }}{240}{figure.16.3}} +\newlabel{fig:archi}{{16.3}{240}{(left)Typical setup with clean and dirty packages loaded and cached --- (right) Package published. \label {fig:archi}\relax }{figure.16.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {16.2}What is Gofer?}{240}{section.16.2}} +\@writefile{toc}{\contentsline {section}{\numberline {16.3}Using Gofer}{241}{section.16.3}} +\@writefile{toc}{\contentsline {subsection}{Package Identification}{242}{subsection*.152}} +\@writefile{toc}{\contentsline {section}{\numberline {16.4}Gofer Actions}{242}{section.16.4}} +\@writefile{toc}{\contentsline {subsection}{Loading several packages}{242}{subsection*.153}} +\@writefile{toc}{\contentsline {subsection}{Other protocols}{244}{subsection*.154}} +\@writefile{toc}{\contentsline {subsection}{Working with remote servers}{245}{subsection*.155}} +\@writefile{toc}{\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{merge}, \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{update} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{revert} operations.}{245}{paragraph*.156}} +\@writefile{toc}{\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{commit} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{commit:} operations.}{246}{paragraph*.157}} +\@writefile{toc}{\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{localChanges} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{remoteChanges} operations.}{246}{paragraph*.158}} +\@writefile{toc}{\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{unload} operation.}{246}{paragraph*.159}} +\@writefile{toc}{\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{fetch} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{push} operations.}{247}{paragraph*.160}} +\@writefile{toc}{\contentsline {subsection}{Automating Answers}{248}{subsection*.161}} +\@writefile{toc}{\contentsline {section}{\numberline {16.5}Conclusion}{248}{section.16.5}} +\@writefile{toc}{\contentsline {chapter}{\numberline {17}Managing projects with Metacello}{249}{chapter.17}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\newlabel{cha:metacello}{{17}{249}{Managing projects with Metacello\relax }{chapter.17}{}} +\@writefile{toc}{\contentsline {section}{\numberline {17.1}Introduction}{249}{section.17.1}} +\@writefile{toc}{\contentsline {section}{\numberline {17.2}One tool for each job}{250}{section.17.2}} +\@writefile{toc}{\contentsline {section}{\numberline {17.3}Metacello features}{251}{section.17.3}} +\@writefile{toc}{\contentsline {section}{\numberline {17.4}A Simple Case}{251}{section.17.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.1}{\ignorespaces Simple version.}}{253}{figure.17.1}} +\@writefile{toc}{\contentsline {paragraph}{Creating a new version.}{253}{paragraph*.162}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.2}{\ignorespaces An second simple version.}}{254}{figure.17.2}} +\@writefile{toc}{\contentsline {section}{\numberline {17.5}Naming your configuration}{254}{section.17.5}} +\@writefile{toc}{\contentsline {subsection}{Loading a Metacello configuration}{254}{subsection*.163}} +\@writefile{toc}{\contentsline {section}{\numberline {17.6}Managing package internal dependencies}{255}{section.17.6}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.3}{\ignorespaces A version expressing requirements between packages.}}{256}{figure.17.3}} +\newlabel{fig:version03}{{17.3}{256}{A version expressing requirements between packages.\label {fig:version03}\relax }{figure.17.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {17.7}Baselining}{257}{section.17.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.4}{\ignorespaces A version now imports a baseline that expresses dependencies between packages.}}{258}{figure.17.4}} +\newlabel{fig:version04}{{17.4}{258}{A version now imports a baseline that expresses dependencies between packages.\label {fig:version04}\relax }{figure.17.4}{}} +\@writefile{toc}{\contentsline {paragraph}{Loading baselines.}{258}{paragraph*.164}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.5}{\ignorespaces A second version imports again the baseline.}}{259}{figure.17.5}} +\newlabel{fig:version05}{{17.5}{259}{A second version imports again the baseline}{figure.17.5}{}} +\@writefile{toc}{\contentsline {paragraph}{New version.}{259}{paragraph*.165}} +\@writefile{toc}{\contentsline {section}{\numberline {17.8}Groups}{259}{section.17.8}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.6}{\ignorespaces A baseline with groups: default, Core, Extras, Tests, CompleteWithoutTests and CompleteWithTests.}}{260}{figure.17.6}} +\newlabel{fig:version06}{{17.6}{260}{A baseline with groups: default, Core, Extras, Tests, CompleteWithoutTests and CompleteWithTests.\label {fig:version06}\relax }{figure.17.6}{}} +\@writefile{toc}{\contentsline {paragraph}{Examples.}{261}{paragraph*.166}} +\@writefile{toc}{\contentsline {paragraph}{Default group.}{262}{paragraph*.167}} +\@writefile{toc}{\contentsline {section}{\numberline {17.9}Project Configuration Dependencies}{262}{section.17.9}} +\@writefile{toc}{\contentsline {subsection}{Depending on project without configuration}{262}{subsection*.168}} +\@writefile{toc}{\contentsline {subsection}{Depending on project with configuration}{263}{subsection*.169}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.7}{\ignorespaces Dependencies between configurations.}}{264}{figure.17.7}} +\newlabel{fig:version07}{{17.7}{264}{Dependencies between configurations.\label {fig:version07}\relax }{figure.17.7}{}} +\@writefile{toc}{\contentsline {section}{\numberline {17.10}Pre and post code execution}{266}{section.17.10}} +\@writefile{toc}{\contentsline {section}{\numberline {17.11}Platform specific package}{268}{section.17.11}} +\@writefile{toc}{\contentsline {section}{\numberline {17.12}Symbolic Versions}{270}{section.17.12}} +\@writefile{toc}{\contentsline {subsection}{Project Blessing and Loading}{271}{subsection*.170}} +\@writefile{toc}{\contentsline {subsection}{Standard Symbolic Versions}{272}{subsection*.171}} +\@writefile{toc}{\contentsline {subsubsection}{Hints.}{274}{subsubsection*.172}} +\@writefile{toc}{\contentsline {subsection}{Project Startup}{277}{subsection*.173}} +\@writefile{toc}{\contentsline {subsubsection}{Create Configuration and Initial Baseline}{277}{subsubsection*.174}} +\@writefile{toc}{\contentsline {subsection}{Create Initial Literal Version}{278}{subsection*.175}} +\@writefile{toc}{\contentsline {subsection}{Validation}{279}{subsection*.176}} +\@writefile{toc}{\contentsline {subsection}{Save Initial Configuration}{280}{subsection*.177}} +\@writefile{toc}{\contentsline {subsection}{Development Cycle}{280}{subsection*.178}} +\@writefile{toc}{\contentsline {subsubsection}{Platform Testing}{281}{subsubsection*.179}} +\@writefile{toc}{\contentsline {subsubsection}{Release}{281}{subsubsection*.180}} +\@writefile{toc}{\contentsline {subsection}{Open New Version for Development}{282}{subsection*.181}} +\@writefile{toc}{\contentsline {subsubsection}{Configuration Checkpoints}{282}{subsubsection*.182}} +\@writefile{toc}{\contentsline {subsection}{Update Project Structure}{283}{subsection*.183}} +\@writefile{toc}{\contentsline {section}{\numberline {17.13}Load types}{284}{section.17.13}} +\@writefile{toc}{\contentsline {section}{\numberline {17.14}Conditional loading}{285}{section.17.14}} +\@writefile{toc}{\contentsline {section}{\numberline {17.15}Project version attributes}{287}{section.17.15}} +\@writefile{toc}{\contentsline {section}{\numberline {17.16}Conclusion}{288}{section.17.16}} +\@writefile{toc}{\contentsline {part}{\numberline {VI}Tools}{289}{part.6}} +\@writefile{toc}{\contentsline {chapter}{\numberline {18}Optimizing Application}{291}{chapter.18}} +\@writefile{lof}{\addvspace {10\p@ }} +\@writefile{lot}{\addvspace {10\p@ }} +\@writefile{toc}{\contentsline {section}{\numberline {18.1}What does profiling mean?}{291}{section.18.1}} +\@writefile{toc}{\contentsline {section}{\numberline {18.2}A simple example}{292}{section.18.2}} +\@writefile{toc}{\contentsline {paragraph}{The method \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{timeToRun}.}{292}{paragraph*.184}} +\@writefile{toc}{\contentsline {paragraph}{The method \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{bench}.}{293}{paragraph*.185}} +\@writefile{toc}{\contentsline {section}{\numberline {18.3}Code profiling in Pharo}{293}{section.18.3}} +\@writefile{lof}{\contentsline {figure}{\numberline {18.1}{\ignorespaces MessageTally in action.}}{294}{figure.18.1}} +\newlabel{fig:MessageTallyOne}{{18.1}{294}{MessageTally in action.\ja {we should redo this screenshot with correct incr value}\relax }{figure.18.1}{}} +\@writefile{toc}{\contentsline {subsection}{MessageTally}{294}{subsection*.186}} +\@writefile{lof}{\contentsline {figure}{\numberline {18.2}{\ignorespaces TimeProfiler uses MessageTally and navigates in executed methods. }}{295}{figure.18.2}} +\newlabel{fig:TimeProfiler}{{18.2}{295}{TimeProfiler uses MessageTally and navigates in executed methods. \relax }{figure.18.2}{}} +\@writefile{toc}{\contentsline {subsection}{Integration in the programming environment}{295}{subsection*.187}} +\@writefile{toc}{\contentsline {paragraph}{Via the World menu.}{295}{paragraph*.188}} +\@writefile{lof}{\contentsline {figure}{\numberline {18.3}{\ignorespaces Access by the menu.}}{296}{figure.18.3}} +\newlabel{fig:menu}{{18.3}{296}{Access by the menu}{figure.18.3}{}} +\@writefile{toc}{\contentsline {paragraph}{Via the Test Runner.}{296}{paragraph*.189}} +\@writefile{toc}{\contentsline {section}{\numberline {18.4}Read and interpret the results}{296}{section.18.4}} +\@writefile{lof}{\contentsline {figure}{\numberline {18.4}{\ignorespaces Button to generate a message Tally in the TestRunner.}}{297}{figure.18.4}} +\newlabel{fig:testRunner}{{18.4}{297}{Button to generate a message Tally in the TestRunner}{figure.18.4}{}} +\@writefile{toc}{\contentsline {subsection}{**Tree**: Cumulative information}{298}{subsection*.190}} +\@writefile{toc}{\contentsline {subsection}{**Leaves**: leaf methods}{298}{subsection*.191}} +\@writefile{toc}{\contentsline {subsection}{**Memory**}{299}{subsection*.192}} +\@writefile{toc}{\contentsline {subsection}{**GCs**}{300}{subsection*.193}} +\@writefile{toc}{\contentsline {section}{\numberline {18.5}Illustrative Analysis}{301}{section.18.5}} +\@writefile{toc}{\contentsline {paragraph}{Using a \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{Stream} for string concatenation.}{301}{paragraph*.194}} +\@writefile{toc}{\contentsline {paragraph}{String preallocation.}{302}{paragraph*.195}} +\@writefile{toc}{\contentsline {paragraph}{An experiment.}{302}{paragraph*.196}} +\@writefile{toc}{\contentsline {section}{\numberline {18.6}Counting messages}{303}{section.18.6}} +\@writefile{toc}{\contentsline {section}{\numberline {18.7}Memorized Fibonacci}{303}{section.18.7}} +\@writefile{lof}{\contentsline {figure}{\numberline {18.5}{\ignorespaces All executed messages during an execution.}}{304}{figure.18.5}} +\newlabel{fig:sendTally}{{18.5}{304}{All executed messages during an execution}{figure.18.5}{}} +\@writefile{toc}{\contentsline {section}{\numberline {18.8}SpaceTally for Memory Consumption per Class}{305}{section.18.8}} +\@writefile{toc}{\contentsline {section}{\numberline {18.9}Few advices}{305}{section.18.9}} +\@writefile{toc}{\contentsline {section}{\numberline {18.10}How MessageTally is implemented?}{306}{section.18.10}} +\bibstyle{jurabib} +\bibdata{scg} +\@writefile{toc}{\contentsline {section}{\numberline {18.11}Chapter Summary}{307}{section.18.11}} +\ttl@finishall diff --git a/PBE2.glo b/PBE2.glo new file mode 100644 index 0000000..e69de29 diff --git a/PBE2.idx b/PBE2.idx new file mode 100644 index 0000000..9cfce9b --- /dev/null +++ b/PBE2.idx @@ -0,0 +1,251 @@ +\indexentry{metagraph|hyperpage}{5} +\indexentry{Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser\xspace |hyperpage}{5} +\indexentry{OBBrowser@\textsf {OBBrowser} (class)|hyperpage}{6} +\indexentry{metagraph|hyperpage}{6} +\indexentry{metanode|hyperpage}{7} +\indexentry{OBNode@\textsf {OBNode} (class)|hyperpage}{7} +\indexentry{metaedge|hyperpage}{8} +\indexentry{OBCommand@\textsf {OBCommand} (class)|hyperpage}{9} +\indexentry{OBCommand!vs@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{vs}|hyperpage}{9} +\indexentry{OBCommand!isActive@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{isActive}|hyperpage}{10} +\indexentry{OBCommand!keystroke@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{keystroke}|hyperpage}{10} +\indexentry{OBCommand!execute@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{execute}|hyperpage}{10} +\indexentry{OBTextRequest@\textsf {OBTextRequest} (class)|hyperpage}{11} +\indexentry{OBDefinition@\textsf {OBDefinition} (class)|hyperpage}{12} +\indexentry{OBMorphicIcons@\textsf {OBMorphicIcons} (class)|hyperpage}{13} +\indexentry{browser|hyperpage}{15} +\indexentry{node|hyperpage}{16} +\indexentry{metagraph|hyperpage}{16} +\indexentry{metanode|hyperpage}{16} +\indexentry{command|hyperpage}{16} +\indexentry{filter|hyperpage}{17} +\indexentry{definition|hyperpage}{17} +\indexentry{OBBrowser@\textsf {OBBrowser} (class)|hyperpage}{18} +\indexentry{OBBrowser class@\textsf {OBBrowser class} (class)|hyperpage}{18} +\indexentry{OBBrowser class!defaultMetaNode@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{defaultMetaNode}|hyperpage}{18} +\indexentry{OBBrowser class!defaultRootNode@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{defaultRootNode}|hyperpage}{18} +\indexentry{OBMetaNode.@\textsf {OBMetaNode.} (class)|hyperpage}{18} +\indexentry{OBCommand@\textsf {OBCommand} (class)|hyperpage}{18} +\indexentry{OBSystemBrowser@\textsf {OBSystemBrowser} (class)|hyperpage}{22} +\indexentry{OBMetagraphBuilder@\textsf {OBMetagraphBuilder} (class)|hyperpage}{22} +\indexentry{OBClassSortFilter@\textsf {OBClassSortFilter} (class)|hyperpage}{23} +\indexentry{OBModalFilter@\textsf {OBModalFilter} (class)|hyperpage}{24} +\indexentry{GLMFinder@\textsf {GLMFinder} (class)|hyperpage}{30} +\indexentry{ANSI Smalltalk\xspace {}|hyperpage}{77} +\indexentry{exception handler|hyperpage}{77} +\indexentry{Exception@\textsf {Exception} (class)|hyperpage}{77} +\indexentry{BlockClosure!ensure:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{ensure:}|hyperpage}{78} +\indexentry{FileStream!newFileNamed:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{newFileNamed:}|hyperpage}{78} +\indexentry{GIFReadWriter!nextPutImage:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{nextPutImage:}|hyperpage}{78} +\indexentry{BlockClosure!ifCurtailed:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{ifCurtailed:}|hyperpage}{79} +\indexentry{Error!\#@(class)|hyperpage}{79} +\indexentry{Exception handling|hyperpage}{80} +\indexentry{BlockClosure!on:do:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{on:do:}|hyperpage}{80} +\indexentry{FileStream!\#@(class)|hyperpage}{81} +\indexentry{FileStreamException!\#@(class)|hyperpage}{81} +\indexentry{FileDirectory!\#@(class)|hyperpage}{81} +\indexentry{FileDirectory!oldFileNamed:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{oldFileNamed:}|hyperpage}{81} +\indexentry{FileDirectory!newFileNamed:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{newFileNamed:}|hyperpage}{81} +\indexentry{FileStreamException@\textsf {FileStreamException} (class)|hyperpage}{81} +\indexentry{FileDoesNotExistException@\textsf {FileDoesNotExistException} (class)|hyperpage}{83} +\indexentry{FileExistsException@\textsf {FileExistsException} (class)|hyperpage}{83} +\indexentry{CannotDeleteFileException@\textsf {CannotDeleteFileException} (class)|hyperpage}{83} +\indexentry{FileStreamException@\textsf {FileStreamException} (class)|hyperpage}{83} +\indexentry{ZeroDivide@\textsf {ZeroDivide} (class)|hyperpage}{83} +\indexentry{StandardFileStream class!oldFileNamed:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{oldFileNamed:}|hyperpage}{84} +\indexentry{MessageNotUnderstood@\textsf {MessageNotUnderstood} (class)|hyperpage}{85} +\indexentry{Object!doesNotUnderstand:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{doesNotUnderstand:}|hyperpage}{85} +\indexentry{breakpoint|hyperpage}{85} +\indexentry{Object!halt@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{halt}|hyperpage}{85} +\indexentry{exception!resumable|hyperpage}{86} +\indexentry{Halt@\textsf {Halt} (class)|hyperpage}{86} +\indexentry{Exception@\textsf {Exception} (class)|hyperpage}{86} +\indexentry{Halt!defaultAction@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{defaultAction}|hyperpage}{86} +\indexentry{UnhandledError!defaultAction@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{defaultAction}|hyperpage}{86} +\indexentry{StandardToolSet!debug:context:label:contents:fullView:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{debug:context:label:contents:fullView:}|hyperpage}{86} +\indexentry{exception!handler|hyperpage}{86} +\indexentry{activation context|hyperpage}{86} +\indexentry{C|hyperpage}{87} +\indexentry{virtual machine|hyperpage}{87} +\indexentry{BlockClosure!on:do:|hyperpage}{87} +\indexentry{ContextPart!handleSignal:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{handleSignal:}|hyperpage}{88} +\indexentry{UndefinedObject!handleSignal:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{handleSignal:}|hyperpage}{88} +\indexentry{Exception!signal@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{signal}|hyperpage}{88} +\indexentry{exception!handling|hyperpage}{89} +\indexentry{ANSI standard|hyperpage}{90} +\indexentry{Exception!return:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{return:}|hyperpage}{90} +\indexentry{exception!retrying|hyperpage}{90} +\indexentry{Exception!retry@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{retry}|hyperpage}{90} +\indexentry{Exception!retryUsing:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{retryUsing:}|hyperpage}{90} +\indexentry{exception!resuming execution|hyperpage}{91} +\indexentry{Exception!resume:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{resume:}|hyperpage}{91} +\indexentry{deprecation (pattern)|hyperpage}{93} +\indexentry{Object!deprecated:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{deprecated:}|hyperpage}{93} +\indexentry{Deprecation@\textsf {Deprecation} (class)|hyperpage}{93} +\indexentry{Warning@\textsf {Warning} (class)|hyperpage}{93} +\indexentry{Exception@\textsf {Exception} (class)|hyperpage}{94} +\indexentry{MessageNotUnderstood@\textsf {MessageNotUnderstood} (class)|hyperpage}{95} +\indexentry{exception!resending|hyperpage}{96} +\indexentry{Exception!pass@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{pass}|hyperpage}{96} +\indexentry{Exception!outer@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{outer}|hyperpage}{97} +\indexentry{ExceptionSet@\textsf {ExceptionSet} (class)|hyperpage}{98} +\indexentry{BlockClosure!on:do:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{on:do:}|hyperpage}{98} +\indexentry{BlockClosure!on:do:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{on:do:}|hyperpage}{98} +\indexentry{VMMaker@\textsf {VMMaker} (package)|hyperpage}{99} +\indexentry{Exception!signal@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{signal}|hyperpage}{100} +\indexentry{Exception!nextHandlerContext@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{nextHandlerContext}|hyperpage}{100} +\indexentry{MethodContext!findNextHandlerContextStarting@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{findNextHandlerContextStarting}|hyperpage}{100} +\indexentry{Exception!isResumable@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{isResumable}|hyperpage}{102} +\indexentry{Bonzini, Paolo|hyperpage}{105} +\indexentry{GNU \st|hyperpage}{105} +\indexentry{Announcement@\textsf {Announcement} (class)|hyperpage}{142} +\indexentry{on:do:!on: anAnnouncementClass do: aBlock@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{on: anAnnouncementClass do: aBlock}|hyperpage}{142} +\indexentry{on: anAnnouncementClass send: aSelector to: anObject!on: anAnnouncementClass send: aSelector to: anObject@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{on: anAnnouncementClass send: aSelector to: anObject}|hyperpage}{142} +\indexentry{subscribe:do:!subscribe: anAnnouncementClass do: aValuable@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subscribe: anAnnouncementClass do: aValuable}|hyperpage}{142} +\indexentry{subscribe:send:to:!subscribe: anAnnouncementClass send: aSelector to: anObject@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subscribe: anAnnouncementClass send: aSelector to: anObject}|hyperpage}{142} +\indexentry{RemoveChild@\textsf {RemoveChild} (class)|hyperpage}{142} +\indexentry{Regular expressions|see{Regex}}{183} +\indexentry{Perl|hyperpage}{183} +\indexentry{Python|hyperpage}{183} +\indexentry{Ruby|hyperpage}{183} +\indexentry{Regex@\textsf {Regex} (package)|hyperpage}{183} +\indexentry{Bykov, Vassili|hyperpage}{183} +\indexentry{SqueakSource\xspace |hyperpage}{183} +\indexentry{String!matchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex:}|hyperpage}{183} +\indexentry{HTML|hyperpage}{183} +\indexentry{Regex syntax!@\ct{*}|hyperpage}{186} +\indexentry{Kleene star|hyperpage}{186} +\indexentry{String!matchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex:}|hyperpage}{186} +\indexentry{Regex syntax!@\ct{.}|hyperpage}{186} +\indexentry{String!matchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex:}|hyperpage}{186} +\indexentry{RxParser@\textsf {RxParser} (class)|hyperpage}{186} +\indexentry{String!copyWithRegex:matchesReplacedWith:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copyWithRegex:matchesReplacedWith:}|hyperpage}{188} +\indexentry{Regex syntax!@\ct{+}|hyperpage}{188} +\indexentry{Kleene star|hyperpage}{188} +\indexentry{FileStream!oldFileOrNoneNamed:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{oldFileOrNoneNamed:}|hyperpage}{188} +\indexentry{Latin1TextConverter!\#@(class)|hyperpage}{188} +\indexentry{Regex syntax!@\ct{^}|hyperpage}{189} +\indexentry{RxMatcher!matchesPrefix:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesPrefix:}|hyperpage}{189} +\indexentry{RxMatcher!subexpression:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subexpression:}|hyperpage}{189} +\indexentry{String!asRegexIgnoringCase@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{asRegexIgnoringCase}|hyperpage}{189} +\indexentry{String!copyWithRegex:matchesReplacedWith:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copyWithRegex:matchesReplacedWith:}|hyperpage}{190} +\indexentry{Regex syntax|hyperpage}{191} +\indexentry{String!matchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex:}|hyperpage}{191} +\indexentry{Regex syntax!@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{*}|hyperpage}{192} +\indexentry{Kleene star|hyperpage}{192} +\indexentry{Regex!operator precedence|hyperpage}{192} +\indexentry{Regex syntax!@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{()}|hyperpage}{192} +\indexentry{Regex syntax!@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{+}|hyperpage}{192} +\indexentry{Regex syntax!@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{?}|hyperpage}{192} +\indexentry{Regex syntax!escape|hyperpage}{193} +\indexentry{Regex syntax!@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{|}|hyperpage}{193} +\indexentry{Regex syntax!character set|hyperpage}{193} +\indexentry{Regex syntax!character range|hyperpage}{194} +\indexentry{Regex syntax|hyperpage}{194} +\indexentry{Regex syntax!character classes|hyperpage}{195} +\indexentry{Regex syntax!matching string boundaries|hyperpage}{197} +\indexentry{String!prefixMatchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{prefixMatchesRegex:}|hyperpage}{197} +\indexentry{String!matchesRegexIgnoringCase:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegexIgnoringCase:}|hyperpage}{197} +\indexentry{String!prefixMatchesRegexIgnoringCase:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{prefixMatchesRegexIgnoringCase:}|hyperpage}{197} +\indexentry{String!prefixMatchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{prefixMatchesRegex:}|hyperpage}{197} +\indexentry{String!matchesRegex@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex}|hyperpage}{197} +\indexentry{String!regex:matchesDo:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{regex:matchesDo:}|hyperpage}{198} +\indexentry{String!regex:matchesCollect:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{regex:matchesCollect:}|hyperpage}{198} +\indexentry{SequenceableCollection@\textsf {SequenceableCollection} (class)|hyperpage}{198} +\indexentry{String!allRegexMatches:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{allRegexMatches:}|hyperpage}{198} +\indexentry{String!copyWithRegex:matchesReplacedWith:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copyWithRegex:matchesReplacedWith:}|hyperpage}{198} +\indexentry{String!matchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex:}|hyperpage}{199} +\indexentry{RxParser@\textsf {RxParser} (class)|hyperpage}{199} +\indexentry{RxMatcher@\textsf {RxMatcher} (class)|hyperpage}{199} +\indexentry{String@\textsf {String} (class)|hyperpage}{199} +\indexentry{String!asRegex@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{asRegex}|hyperpage}{199} +\indexentry{String!asRegexIgnoringCase@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{asRegexIgnoringCase}|hyperpage}{199} +\indexentry{RxMatcher!forString:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{forString:}|hyperpage}{199} +\indexentry{RxMatcher!forString:ignoreCase:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{forString:ignoreCase:}|hyperpage}{199} +\indexentry{RxMatcher!matchesIn:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesIn:}|hyperpage}{199} +\indexentry{RxMatcher!matches:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matches:}|hyperpage}{199} +\indexentry{RxMatcher!matchesPrefix:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesPrefix:}|hyperpage}{200} +\indexentry{RxMatcher!search:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{search:}|hyperpage}{200} +\indexentry{RxMatcher!lastResult@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{lastResult}|hyperpage}{200} +\indexentry{RxMatcher!matchesStream:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesStream:}|hyperpage}{200} +\indexentry{RxMatcher!matchesStreamPrefix:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesStreamPrefix:}|hyperpage}{200} +\indexentry{RxMatcher!searchStream:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{searchStream:}|hyperpage}{200} +\indexentry{Regex!subexpression matches|hyperpage}{200} +\indexentry{RxMatcher!subexpressionCount@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subexpressionCount}|hyperpage}{201} +\indexentry{RxMatcher!subexpression:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subexpression:}|hyperpage}{201} +\indexentry{RxMatcher!subBeginning:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subBeginning:}|hyperpage}{201} +\indexentry{RxMatcher!subEnd:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{subEnd:}|hyperpage}{201} +\indexentry{RxMatcher!matchesIn:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesIn:}|hyperpage}{202} +\indexentry{RxMatcher!matchesIn:do:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesIn:do:}|hyperpage}{202} +\indexentry{RxMatcher!matchesIn:collect:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesIn:collect:}|hyperpage}{202} +\indexentry{RxMatcher!copy:replacingMatchesWith:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copy:replacingMatchesWith:}|hyperpage}{202} +\indexentry{RxMatcher!copy:translatingMatchesUsing:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copy:translatingMatchesUsing:}|hyperpage}{202} +\indexentry{RxMatcher!matchesOnStream:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesOnStream:}|hyperpage}{202} +\indexentry{RxMatcher!matchesOnStream:do:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesOnStream:do:}|hyperpage}{202} +\indexentry{RxMatcher!matchesOnStream:collect:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesOnStream:collect:}|hyperpage}{202} +\indexentry{RxMatcher!copyStream:to:replacingMatchesWith:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copyStream:to:replacingMatchesWith:}|hyperpage}{202} +\indexentry{RxMatcher!copyStream:to:translatingMatchesUsing:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{copyStream:to:translatingMatchesUsing:}|hyperpage}{202} +\indexentry{RegexSyntaxError@\textsf {RegexSyntaxError} (class)|hyperpage}{202} +\indexentry{RegexCompilationError@\textsf {RegexCompilationError} (class)|hyperpage}{202} +\indexentry{RegexMatchingError@\textsf {RegexMatchingError} (class)|hyperpage}{202} +\indexentry{Bykov, Vassili|hyperpage}{203} +\indexentry{String!matchesRegex:@\lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{matchesRegex:}|hyperpage}{203} +\indexentry{RxParser@\textsf {RxParser} (class)|hyperpage}{203} +\indexentry{Rxs*@\textsf {Rxs*} (class)|hyperpage}{203} +\indexentry{RxMatcher@\textsf {RxMatcher} (class)|hyperpage}{203} +\indexentry{RxMatcher@\textsf {RxMatcher} (class)|hyperpage}{203} +\indexentry{RxParser@\textsf {RxParser} (class)|hyperpage}{203} +\indexentry{RxMatcher@\textsf {RxMatcher} (class)|hyperpage}{203} +\indexentry{CVS|hyperpage}{207} +\indexentry{Subversion|hyperpage}{207} +\indexentry{SqueakSource|hyperpage}{207} +\indexentry{Monticello\xspace {}|hyperpage}{207} +\indexentry{GForge|hyperpage}{207} +\indexentry{TestCase@\textsf {TestCase} (class)|hyperpage}{208} +\indexentry{Monticello!browser|hyperpage}{208} +\indexentry{Euclid|hyperpage}{208} +\indexentry{Monticello!creating packages|hyperpage}{209} +\indexentry{package|hyperpage}{209} +\indexentry{PackageInfo@\textsf {PackageInfo} (class)|hyperpage}{209} +\indexentry{Monticello!committing changes|hyperpage}{210} +\indexentry{package-cache|hyperpage}{210} +\indexentry{version|hyperpage}{211} +\indexentry{class extensions|hyperpage}{212} +\indexentry{package!clean and dirty|hyperpage}{212} +\indexentry{Repository inspector|see{Monticello, repository inspector}}{212} +\indexentry{Monticello!repository inspector|hyperpage}{212} +\indexentry{package-cache|hyperpage}{212} +\indexentry{package-cache|hyperpage}{214} +\indexentry{Monticello!loading, unloading, updating packages|hyperpage}{214} +\indexentry{Monticello!branching|hyperpage}{215} +\indexentry{branch|hyperpage}{215} +\indexentry{Monticello!merging|hyperpage}{216} +\indexentry{Monticello!merge tool|hyperpage}{216} +\indexentry{Monticello!snapshot browser|hyperpage}{221} +\indexentry{class extension|hyperpage}{221} +\indexentry{Monticello!patch browser|hyperpage}{222} +\indexentry{Monticello!history browser|hyperpage}{223} +\indexentry{Monticello!backporting|hyperpage}{223} +\indexentry{Monticello!dependency|hyperpage}{226} +\indexentry{package!required|see{Monticello, dependency}}{226} +\indexentry{Pier|hyperpage}{226} +\indexentry{package-cache|hyperpage}{227} +\indexentry{class!initialization|hyperpage}{228} +\indexentry{Monticello!class initialization|hyperpage}{228} +\indexentry{Monticello!repository|hyperpage}{230} +\indexentry{Monticello!HTTP repository|hyperpage}{230} +\indexentry{SqueakSource\xspace |hyperpage}{230} +\indexentry{Apache|hyperpage}{230} +\indexentry{Monticello!FTP repository|hyperpage}{230} +\indexentry{Monticello!GOODS repository|hyperpage}{230} +\indexentry{Monticello!directory repository|hyperpage}{231} +\indexentry{package-cache|hyperpage}{231} +\indexentry{Monticello!SMTP repository|hyperpage}{231} +\indexentry{SqueakSource\xspace |hyperpage}{232} +\indexentry{Monticello!version|hyperpage}{234} +\indexentry{Monticello!mcz format|hyperpage}{234} +\indexentry{mcz format|see{Monticello, mcz format}}{234} +\indexentry{Monticello!package|hyperpage}{234} +\indexentry{Monticello!snapshot|hyperpage}{234} +\indexentry{Monticello!dependency|hyperpage}{235} +\indexentry{package-cache|hyperpage}{235} diff --git a/PBE2.log b/PBE2.log new file mode 100644 index 0000000..f95443c --- /dev/null +++ b/PBE2.log @@ -0,0 +1,2141 @@ +This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.6.15) 31 JUL 2011 17:37 +entering extended mode + %&-line parsing enabled. +**PBE2.tex +(./PBE2.tex +LaTeX2e <2009/09/24> +Babel and hyphenation patterns for english, usenglishmax, dumylang, noh +yphenation, loaded. +(/usr/share/texmf-texlive/tex/latex/base/book.cls +Document Class: book 2007/10/19 v1.4h Standard LaTeX document class +(/usr/share/texmf-texlive/tex/latex/base/bk10.clo +File: bk10.clo 2007/10/19 v1.4h Standard LaTeX file (size option) +) +\c@part=\count79 +\c@chapter=\count80 +\c@section=\count81 +\c@subsection=\count82 +\c@subsubsection=\count83 +\c@paragraph=\count84 +\c@subparagraph=\count85 +\c@figure=\count86 +\c@table=\count87 +\abovecaptionskip=\skip41 +\belowcaptionskip=\skip42 +\bibindent=\dimen102 +) +(/usr/share/texmf-texlive/tex/latex/geometry/geometry.sty +Package: geometry 2008/12/21 v4.2 Page Geometry + +(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty +Package: keyval 1999/03/16 v1.13 key=value parser (DPC) +\KV@toks@=\toks14 +) +(/usr/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty +Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO) +Package ifpdf Info: pdfTeX in pdf mode detected. +) +(/usr/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty +Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO) +Package ifvtex Info: VTeX not detected. +) +\Gm@cnth=\count88 +\Gm@cntv=\count89 +\c@Gm@tempcnt=\count90 +\Gm@bindingoffset=\dimen103 +\Gm@wd@mp=\dimen104 +\Gm@odd@mp=\dimen105 +\Gm@even@mp=\dimen106 +\Gm@dimlist=\toks15 +) (./common.tex +(/usr/share/texmf-texlive/tex/latex/base/fontenc.sty +Package: fontenc 2005/09/27 v1.99g Standard LaTeX package + +(/usr/share/texmf-texlive/tex/latex/base/t1enc.def +File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file +LaTeX Font Info: Redeclaring font encoding T1 on input line 43. +)) +(/usr/share/texmf/tex/latex/lm/lmodern.sty +Package: lmodern 2009/10/30 v1.6 Latin Modern Fonts +LaTeX Font Info: Overwriting symbol font `operators' in version `normal' +(Font) OT1/cmr/m/n --> OT1/lmr/m/n on input line 22. +LaTeX Font Info: Overwriting symbol font `letters' in version `normal' +(Font) OML/cmm/m/it --> OML/lmm/m/it on input line 23. +LaTeX Font Info: Overwriting symbol font `symbols' in version `normal' +(Font) OMS/cmsy/m/n --> OMS/lmsy/m/n on input line 24. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `normal' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 25. +LaTeX Font Info: Overwriting symbol font `operators' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 26. +LaTeX Font Info: Overwriting symbol font `letters' in version `bold' +(Font) OML/cmm/b/it --> OML/lmm/b/it on input line 27. +LaTeX Font Info: Overwriting symbol font `symbols' in version `bold' +(Font) OMS/cmsy/b/n --> OMS/lmsy/b/n on input line 28. +LaTeX Font Info: Overwriting symbol font `largesymbols' in version `bold' +(Font) OMX/cmex/m/n --> OMX/lmex/m/n on input line 29. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `normal' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 31. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `normal' +(Font) OT1/cmss/m/n --> OT1/lmss/m/n on input line 32. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `normal' +(Font) OT1/cmr/m/it --> OT1/lmr/m/it on input line 33. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `normal' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 34. +LaTeX Font Info: Overwriting math alphabet `\mathbf' in version `bold' +(Font) OT1/cmr/bx/n --> OT1/lmr/bx/n on input line 35. +LaTeX Font Info: Overwriting math alphabet `\mathsf' in version `bold' +(Font) OT1/cmss/bx/n --> OT1/lmss/bx/n on input line 36. +LaTeX Font Info: Overwriting math alphabet `\mathit' in version `bold' +(Font) OT1/cmr/bx/it --> OT1/lmr/bx/it on input line 37. +LaTeX Font Info: Overwriting math alphabet `\mathtt' in version `bold' +(Font) OT1/cmtt/m/n --> OT1/lmtt/m/n on input line 38. +) +(/usr/share/texmf-texlive/tex/latex/psnfss/palatino.sty +Package: palatino 2005/04/12 PSNFSS-v9.2a (SPQR) +) +(/usr/share/texmf-texlive/tex/latex/psnfss/helvet.sty +Package: helvet 2005/04/12 PSNFSS-v9.2a (WaS) +) +(/usr/share/texmf-texlive/tex/latex/microtype/microtype.sty +Package: microtype 2009/03/27 v2.3d Micro-typography with pdfTeX (RS) +\MT@toks=\toks16 +\MT@count=\count91 +LaTeX Info: Redefining \lsstyle on input line 1608. +LaTeX Info: Redefining \lslig on input line 1608. +\MT@outer@space=\skip43 +LaTeX Info: Redefining \textls on input line 1616. +\MT@outer@kern=\dimen107 +LaTeX Info: Redefining \textmicrotypecontext on input line 2167. +Package microtype Info: Loading configuration file microtype.cfg. + +(/usr/share/texmf-texlive/tex/latex/microtype/microtype.cfg +File: microtype.cfg 2009/03/27 v2.3d microtype main configuration file (RS) +)) +(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty +Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR) + +(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty +Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR) + +(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty +Package: trig 1999/03/16 v1.09 sin cos tan (DPC) +) +(/etc/texmf/tex/latex/config/graphics.cfg +File: graphics.cfg 2009/08/28 v1.8 graphics configuration of TeX Live +) +Package graphics Info: Driver file: pdftex.def on input line 91. + +(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def +File: pdftex.def 2010/03/12 v0.04p Graphics/color for pdfTeX +\Gread@gobject=\count92 +)) +\Gin@req@height=\dimen108 +\Gin@req@width=\dimen109 +) +(/usr/share/texmf-texlive/tex/latex/tools/theorem.sty +Package: theorem 1995/11/23 v2.2c Theorem extension package (FMi) +\theorem@style=\toks17 +\theorem@bodyfont=\toks18 +\theorempreskipamount=\skip44 +\theorempostskipamount=\skip45 + +(/usr/share/texmf-texlive/tex/latex/tools/thp.sty +File: thp.sty 1995/11/23 v2.2c Theorem extension package (FMi) +)) +(/usr/share/texmf-texlive/tex/generic/babel/babel.sty +Package: babel 2008/07/06 v3.8l The Babel package + +(/usr/share/texmf-texlive/tex/generic/babel/english.ldf +Language: english 2005/03/30 v3.3o English support from the babel system + +(/usr/share/texmf-texlive/tex/generic/babel/babel.def +File: babel.def 2008/07/06 v3.8l Babel common definitions +\babel@savecnt=\count93 +\U@D=\dimen110 +) +\l@british = a dialect from \language\l@english +\l@UKenglish = a dialect from \language\l@english +\l@canadian = a dialect from \language\l@american +\l@australian = a dialect from \language\l@british +\l@newzealand = a dialect from \language\l@british +)) +(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty +Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC) +) +(/usr/share/texmf-texlive/tex/latex/float/float.sty +Package: float 2001/11/08 v1.3d Float enhancements (AL) +\c@float@type=\count94 +\float@exts=\toks19 +\float@box=\box26 +\@float@everytoks=\toks20 +\@floatcapt=\box27 +) +(/usr/share/texmf-texlive/tex/latex/tools/longtable.sty +Package: longtable 2004/02/01 v4.11 Multi-page Table package (DPC) +\LTleft=\skip46 +\LTright=\skip47 +\LTpre=\skip48 +\LTpost=\skip49 +\LTchunksize=\count95 +\LTcapwidth=\dimen111 +\LT@head=\box28 +\LT@firsthead=\box29 +\LT@foot=\box30 +\LT@lastfoot=\box31 +\LT@cols=\count96 +\LT@rows=\count97 +\c@LT@tables=\count98 +\c@LT@chunks=\count99 +\LT@p@ftn=\toks21 +) +(/usr/share/texmf-texlive/tex/latex/base/makeidx.sty +Package: makeidx 2000/03/29 v1.0m Standard LaTeX package +) +(/usr/share/texmf-texlive/tex/latex/tocbibind/tocbibind.sty +Package: tocbibind 2009/09/04 v1.5i extra ToC listings + + +Package tocbibind Note: The document has chapter divisions. + + +Package tocbibind Note: Using chapter style headings, unless overridden. + +) (/usr/share/texmf-texlive/tex/latex/tools/multicol.sty +Package: multicol 2008/12/05 v1.6h multicolumn formatting (FMi) +\c@tracingmulticols=\count100 +\mult@box=\box32 +\multicol@leftmargin=\dimen112 +\c@unbalance=\count101 +\c@collectmore=\count102 +\doublecol@number=\count103 +\multicoltolerance=\count104 +\multicolpretolerance=\count105 +\full@width=\dimen113 +\page@free=\dimen114 +\premulticols=\dimen115 +\postmulticols=\dimen116 +\multicolsep=\skip50 +\multicolbaselineskip=\skip51 +\partial@page=\box33 +\last@line=\box34 +\mult@rightbox=\box35 +\mult@grightbox=\box36 +\mult@gfirstbox=\box37 +\mult@firstbox=\box38 +\@tempa=\box39 +\@tempa=\box40 +\@tempa=\box41 +\@tempa=\box42 +\@tempa=\box43 +\@tempa=\box44 +\@tempa=\box45 +\@tempa=\box46 +\@tempa=\box47 +\@tempa=\box48 +\@tempa=\box49 +\@tempa=\box50 +\@tempa=\box51 +\@tempa=\box52 +\@tempa=\box53 +\@tempa=\box54 +\@tempa=\box55 +\c@columnbadness=\count106 +\c@finalcolumnbadness=\count107 +\last@try=\dimen117 +\multicolovershoot=\dimen118 +\multicolundershoot=\dimen119 +\mult@nat@firstbox=\box56 +\colbreak@box=\box57 +) +(/usr/share/texmf-texlive/tex/latex/booktabs/booktabs.sty +Package: booktabs 2005/04/14 v1.61803 publication quality tables +\heavyrulewidth=\dimen120 +\lightrulewidth=\dimen121 +\cmidrulewidth=\dimen122 +\belowrulesep=\dimen123 +\belowbottomsep=\dimen124 +\aboverulesep=\dimen125 +\abovetopsep=\dimen126 +\cmidrulesep=\dimen127 +\cmidrulekern=\dimen128 +\defaultaddspace=\dimen129 +\@cmidla=\count108 +\@cmidlb=\count109 +\@aboverulesep=\dimen130 +\@belowrulesep=\dimen131 +\@thisruleclass=\count110 +\@lastruleclass=\count111 +\@thisrulewidth=\dimen132 +) +(/usr/share/texmf-texlive/tex/latex/ltxmisc/topcapt.sty +Package: topcapt 2004/12/11 v1.2 Caption at top of float +) +(/usr/share/texmf-texlive/tex/latex/multirow/multirow.sty +\bigstrutjot=\dimen133 +) +(/usr/share/texmf-texlive/tex/latex/tools/tabularx.sty +Package: tabularx 1999/01/07 v2.07 `tabularx' package (DPC) + +(/usr/share/texmf-texlive/tex/latex/tools/array.sty +Package: array 2008/09/09 v2.4c Tabular extension package (FMi) +\col@sep=\dimen134 +\extrarowheight=\dimen135 +\NC@list=\toks22 +\extratabsurround=\skip52 +\backup@length=\skip53 +) +\TX@col@width=\dimen136 +\TX@old@table=\dimen137 +\TX@old@col=\dimen138 +\TX@target=\dimen139 +\TX@delta=\dimen140 +\TX@cols=\count112 +\TX@ftn=\toks23 +) +(/usr/share/texmf-texlive/tex/latex/tools/xspace.sty +Package: xspace 2006/05/08 v1.12 Space after command names (DPC,MH) +) +(/usr/share/texmf-texlive/tex/latex/base/alltt.sty +Package: alltt 1997/06/16 v2.0g defines alltt environment +) +(/usr/share/texmf-texlive/tex/latex/amsfonts/amssymb.sty +Package: amssymb 2009/06/22 v3.00 + +(/usr/share/texmf-texlive/tex/latex/amsfonts/amsfonts.sty +Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support +\@emptytoks=\toks24 +\symAMSa=\mathgroup4 +\symAMSb=\mathgroup5 +LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold' +(Font) U/euf/m/n --> U/euf/b/n on input line 96. +)) +(/usr/share/texmf-texlive/tex/latex/base/textcomp.sty +Package: textcomp 2005/09/27 v1.99g Standard LaTeX package +Package textcomp Info: Sub-encoding information: +(textcomp) 5 = only ISO-Adobe without \textcurrency +(textcomp) 4 = 5 + \texteuro +(textcomp) 3 = 4 + \textohm +(textcomp) 2 = 3 + \textestimated + \textcurrency +(textcomp) 1 = TS1 - \textcircled - \t +(textcomp) 0 = TS1 (full) +(textcomp) Font families with sub-encoding setting implement +(textcomp) only a restricted character set as indicated. +(textcomp) Family '?' is the default used for unknown fonts. +(textcomp) See the documentation for details. +Package textcomp Info: Setting ? sub-encoding to TS1/1 on input line 71. + +(/usr/share/texmf-texlive/tex/latex/base/ts1enc.def +File: ts1enc.def 2001/06/05 v3.0e (jk/car/fm) Standard LaTeX file +) +LaTeX Info: Redefining \oldstylenums on input line 266. +Package textcomp Info: Setting cmr sub-encoding to TS1/0 on input line 281. +Package textcomp Info: Setting cmss sub-encoding to TS1/0 on input line 282. +Package textcomp Info: Setting cmtt sub-encoding to TS1/0 on input line 283. +Package textcomp Info: Setting cmvtt sub-encoding to TS1/0 on input line 284. +Package textcomp Info: Setting cmbr sub-encoding to TS1/0 on input line 285. +Package textcomp Info: Setting cmtl sub-encoding to TS1/0 on input line 286. +Package textcomp Info: Setting ccr sub-encoding to TS1/0 on input line 287. +Package textcomp Info: Setting ptm sub-encoding to TS1/4 on input line 288. +Package textcomp Info: Setting pcr sub-encoding to TS1/4 on input line 289. +Package textcomp Info: Setting phv sub-encoding to TS1/4 on input line 290. +Package textcomp Info: Setting ppl sub-encoding to TS1/3 on input line 291. +Package textcomp Info: Setting pag sub-encoding to TS1/4 on input line 292. +Package textcomp Info: Setting pbk sub-encoding to TS1/4 on input line 293. +Package textcomp Info: Setting pnc sub-encoding to TS1/4 on input line 294. +Package textcomp Info: Setting pzc sub-encoding to TS1/4 on input line 295. +Package textcomp Info: Setting bch sub-encoding to TS1/4 on input line 296. +Package textcomp Info: Setting put sub-encoding to TS1/5 on input line 297. +Package textcomp Info: Setting uag sub-encoding to TS1/5 on input line 298. +Package textcomp Info: Setting ugq sub-encoding to TS1/5 on input line 299. +Package textcomp Info: Setting ul8 sub-encoding to TS1/4 on input line 300. +Package textcomp Info: Setting ul9 sub-encoding to TS1/4 on input line 301. +Package textcomp Info: Setting augie sub-encoding to TS1/5 on input line 302. +Package textcomp Info: Setting dayrom sub-encoding to TS1/3 on input line 303. +Package textcomp Info: Setting dayroms sub-encoding to TS1/3 on input line 304. + +Package textcomp Info: Setting pxr sub-encoding to TS1/0 on input line 305. +Package textcomp Info: Setting pxss sub-encoding to TS1/0 on input line 306. +Package textcomp Info: Setting pxtt sub-encoding to TS1/0 on input line 307. +Package textcomp Info: Setting txr sub-encoding to TS1/0 on input line 308. +Package textcomp Info: Setting txss sub-encoding to TS1/0 on input line 309. +Package textcomp Info: Setting txtt sub-encoding to TS1/0 on input line 310. +Package textcomp Info: Setting futs sub-encoding to TS1/4 on input line 311. +Package textcomp Info: Setting futx sub-encoding to TS1/4 on input line 312. +Package textcomp Info: Setting futj sub-encoding to TS1/4 on input line 313. +Package textcomp Info: Setting hlh sub-encoding to TS1/3 on input line 314. +Package textcomp Info: Setting hls sub-encoding to TS1/3 on input line 315. +Package textcomp Info: Setting hlst sub-encoding to TS1/3 on input line 316. +Package textcomp Info: Setting hlct sub-encoding to TS1/5 on input line 317. +Package textcomp Info: Setting hlx sub-encoding to TS1/5 on input line 318. +Package textcomp Info: Setting hlce sub-encoding to TS1/5 on input line 319. +Package textcomp Info: Setting hlcn sub-encoding to TS1/5 on input line 320. +Package textcomp Info: Setting hlcw sub-encoding to TS1/5 on input line 321. +Package textcomp Info: Setting hlcf sub-encoding to TS1/5 on input line 322. +Package textcomp Info: Setting pplx sub-encoding to TS1/3 on input line 323. +Package textcomp Info: Setting pplj sub-encoding to TS1/3 on input line 324. +Package textcomp Info: Setting ptmx sub-encoding to TS1/4 on input line 325. +Package textcomp Info: Setting ptmj sub-encoding to TS1/4 on input line 326. +) +(/usr/share/texmf-texlive/tex/latex/graphics/color.sty +Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC) + +(/etc/texmf/tex/latex/config/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package color Info: Driver file: pdftex.def on input line 130. + +(/usr/share/texmf-texlive/tex/latex/graphics/dvipsnam.def +File: dvipsnam.def 1999/02/16 v3.0i Driver-dependant file (DPC,SPQR) +)) +(/usr/share/texmf-texlive/tex/latex/subfigure/subfigure.sty +Package: subfigure 2002/03/15 v2.1.5 subfigure package +\subfigtopskip=\skip54 +\subfigcapskip=\skip55 +\subfigcaptopadj=\dimen141 +\subfigbottomskip=\skip56 +\subfigcapmargin=\dimen142 +\subfiglabelskip=\skip57 +\c@subfigure=\count113 +\c@lofdepth=\count114 +\c@subtable=\count115 +\c@lotdepth=\count116 + +**************************************** +* Local config file subfigure.cfg used * +**************************************** +(/usr/share/texmf-texlive/tex/latex/subfigure/subfigure.cfg) +\subfig@top=\skip58 +\subfig@bottom=\skip59 +) +(/usr/share/texmf-texlive/tex/latex/rotating/rotating.sty +Package: rotating 2009/03/28 v2.16a rotated objects in LaTeX +\c@r@tfl@t=\count117 +\rotFPtop=\skip60 +\rotFPbot=\skip61 +\rot@float@box=\box58 +\rot@mess@toks=\toks25 +) +(/usr/share/texmf-texlive/tex/latex/enumitem/enumitem.sty +Package: enumitem 2009/05/18 v2.2 Customized lists +\enit@toks=\toks26 +\labelindent=\skip62 +\enit@outerparindent=\dimen143 +\enitdp@desc=\count118 +) +(/usr/share/texmf-texlive/tex/latex/tools/verbatim.sty +Package: verbatim 2003/08/22 v1.5q LaTeX2e package for verbatim enhancements +\every@verbatim=\toks27 +\verbatim@line=\toks28 +\verbatim@in@stream=\read1 +) +(/usr/share/texmf-texlive/tex/latex/tools/varioref.sty +Package: varioref 2009/09/13 v1.4w package for extended references (FMi) +\c@vrcnt=\count119 +) +(/usr/share/texmf-texlive/tex/latex/needspace/needspace.sty +Package: needspace 2009/09/03 v1.3b reserve vertical space +) +(/usr/share/texmf-texlive/tex/latex/isodate/isodateo.sty +Package: isodateo 2004/02/12 + +(/usr/share/texmf-texlive/tex/latex/tools/calc.sty +Package: calc 2007/08/22 v4.3 Infix arithmetic (KKT,FJ) +\calc@Acount=\count120 +\calc@Bcount=\count121 +\calc@Adimen=\dimen144 +\calc@Bdimen=\dimen145 +\calc@Askip=\skip63 +\calc@Bskip=\skip64 +LaTeX Info: Redefining \setlength on input line 76. +LaTeX Info: Redefining \addtolength on input line 77. +\calc@Ccount=\count122 +\calc@Cskip=\skip65 +) +(/usr/share/texmf-texlive/tex/latex/substr/substr.sty +Package: substr 2005/11/29 v1.1 Handle substrings +\c@su@anzahl=\count123 +) +\c@yeartwo=\count124 +\c@iso@slash=\count125 +\c@iso@minus=\count126 +\c@iso@dot=\count127 +) +(/usr/share/texmf-texlive/tex/latex/titlesec/titlesec.sty +Package: titlesec 2007/08/12 v2.8 Sectioning titles +\ttl@box=\box59 +\beforetitleunit=\skip66 +\aftertitleunit=\skip67 +\ttl@plus=\dimen146 +\ttl@minus=\dimen147 +\ttl@toksa=\toks29 +\titlewidth=\dimen148 +\titlewidthlast=\dimen149 +\titlewidthfirst=\dimen150 +) +(/usr/share/texmf-texlive/tex/latex/titlesec/titletoc.sty +Package: titletoc 2007/08/12 v1.6 TOC entries +\ttl@leftsep=\dimen151 +) +(/usr/share/texmf-texlive/tex/latex/wrapfig/wrapfig.sty +\wrapoverhang=\dimen152 +\WF@size=\dimen153 +\c@WF@wrappedlines=\count128 +\WF@box=\box60 +\WF@everypar=\toks30 +Package: wrapfig 2003/01/31 v 3.6 +) +(/usr/share/texmf-texlive/tex/latex/jurabib/jurabib.sty +Package: jurabib 2004/01/25 v0.6 Extended citations + +(/usr/share/texmf-texlive/tex/latex/ltxmisc/url.sty +\Urlmuskip=\muskip10 +Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc. +) +\c@ibidem@author=\count129 +\c@multiple@author=\count130 +LaTeX Info: Redefining \jbarchnameformat on input line 945. +\jb@subarchitemwidth=\skip68 +\jb@subarchentrywidth=\skip69 +LaTeX Info: Redefining \jbapifont on input line 1216. +\jb@urlfile=\write3 + (./PBE2.url) +\jb@tempfile=\read2 +\openout3 = `PBE2.url'. + +\c@jbbibcnt=\count131 +\c@jbbibcnta=\count132 +\c@idemcnt=\count133 +\c@bibnamereplace=\count134 +\c@citefull=\count135 +\c@opcit=\count136 +\c@jb@cites@in@footnote=\count137 +\jbbibhang=\skip70 +\bibnumberwidth=\skip71 +\jb@biblaw@entry@width=\skip72 +\jb@biblaw@item@width=\skip73 +LaTeX Font Info: Try loading font information for OT1+lmr on input line 3438 +. + +(/usr/share/texmf/tex/latex/lm/ot1lmr.fd +File: ot1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OML+lmm on input line 3438 +. + +(/usr/share/texmf/tex/latex/lm/omllmm.fd +File: omllmm.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMS+lmsy on input line 343 +8. + +(/usr/share/texmf/tex/latex/lm/omslmsy.fd +File: omslmsy.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: Try loading font information for OMX+lmex on input line 343 +8. + +(/usr/share/texmf/tex/latex/lm/omxlmex.fd +File: omxlmex.fd 2009/10/30 v1.6 Font defs for Latin Modern +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <10> on input line 3438. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <7> on input line 3438. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <5> on input line 3438. +LaTeX Font Info: Try loading font information for U+msa on input line 3438. + +(/usr/share/texmf-texlive/tex/latex/amsfonts/umsa.fd +File: umsa.fd 2009/06/22 v3.00 AMS symbols A +) +LaTeX Font Info: Try loading font information for U+msb on input line 3438. + +(/usr/share/texmf-texlive/tex/latex/amsfonts/umsb.fd +File: umsb.fd 2009/06/22 v3.00 AMS symbols B +) +LaTeX Info: Redefining \cite on input line 3744. +\jb@length@i=\skip74 +\jb@length@ii=\skip75 +\jb@length@iii=\skip76 +\jb@temptoks=\toks31 +\jbedwidth=\skip77 +\jb@ta=\toks32 +\jb@tb=\toks33 +LaTeX Info: Redefining \jbtitlefont on input line 5980. + +Package jurabib Info: *** Local config file `jurabib.cfg' used *** + +(/usr/share/texmf-texlive/tex/latex/jurabib/jurabib.cfg +File: jurabib.cfg jurabib local configuration file +) +LaTeX Info: Redefining \jbtitlefont on input line 5986. +) +(/usr/share/texmf-texlive/tex/latex/hyperref/hyperref.sty +Package: hyperref 2009/10/09 v6.79a Hypertext links for LaTeX + +(/usr/share/texmf-texlive/tex/generic/ifxetex/ifxetex.sty +Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional +) +(/usr/share/texmf-texlive/tex/latex/oberdiek/hycolor.sty +Package: hycolor 2009/10/02 v1.5 Code for color options of hyperref/bookmark (H +O) + +(/usr/share/texmf-texlive/tex/latex/oberdiek/xcolor-patch.sty +Package: xcolor-patch 2009/10/02 xcolor patch +)) +\@linkdim=\dimen154 +\Hy@linkcounter=\count138 +\Hy@pagecounter=\count139 + +(/usr/share/texmf-texlive/tex/latex/hyperref/pd1enc.def +File: pd1enc.def 2009/10/09 v6.79a Hyperref: PDFDocEncoding definition (HO) +) +(/usr/share/texmf-texlive/tex/generic/oberdiek/etexcmds.sty +Package: etexcmds 2007/12/12 v1.2 Prefix for e-TeX command names (HO) + +(/usr/share/texmf-texlive/tex/generic/oberdiek/infwarerr.sty +Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO) +) +Package etexcmds Info: Could not find \expanded. +(etexcmds) That can mean that you are not using pdfTeX 1.50 or +(etexcmds) that some package has redefined \expanded. +(etexcmds) In the latter case, load this package earlier. +) +(/usr/share/texmf-texlive/tex/latex/latexconfig/hyperref.cfg +File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive +) +(/usr/share/texmf-texlive/tex/latex/oberdiek/kvoptions.sty +Package: kvoptions 2009/08/13 v3.4 Keyval support for LaTeX options (HO) + +(/usr/share/texmf-texlive/tex/generic/oberdiek/kvsetkeys.sty +Package: kvsetkeys 2009/07/30 v1.5 Key value parser with default handler suppor +t (HO) +)) +Package hyperref Info: Option `colorlinks' set `true' on input line 2864. +Package hyperref Info: Hyper figures OFF on input line 2975. +Package hyperref Info: Link nesting OFF on input line 2980. +Package hyperref Info: Hyper index ON on input line 2983. +Package hyperref Info: Plain pages OFF on input line 2990. +Package hyperref Info: Backreferencing OFF on input line 2995. + +Implicit mode ON; LaTeX internals redefined +Package hyperref Info: Bookmarks ON on input line 3191. +LaTeX Info: Redefining \url on input line 3428. +(/usr/share/texmf-texlive/tex/generic/oberdiek/bitset.sty +Package: bitset 2007/09/28 v1.0 Data type bit set (HO) + +(/usr/share/texmf-texlive/tex/generic/oberdiek/intcalc.sty +Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO) +) +(/usr/share/texmf-texlive/tex/generic/oberdiek/bigintcalc.sty +Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO) + +(/usr/share/texmf-texlive/tex/generic/oberdiek/pdftexcmds.sty +Package: pdftexcmds 2009/09/23 v0.6 LuaTeX support for pdfTeX utility functions + (HO) + +(/usr/share/texmf-texlive/tex/generic/oberdiek/ifluatex.sty +Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO) +Package ifluatex Info: LuaTeX not detected. +) +(/usr/share/texmf-texlive/tex/generic/oberdiek/ltxcmds.sty +Package: ltxcmds 2009/08/05 v1.0 Some LaTeX kernel commands for general use (HO +) +) +Package pdftexcmds Info: LuaTeX not detected. +Package pdftexcmds Info: \pdf@primitive is available. +Package pdftexcmds Info: \pdf@ifprimitive is available. +))) +\Fld@menulength=\count140 +\Field@Width=\dimen155 +\Fld@charsize=\dimen156 +\Field@toks=\toks34 +Package hyperref Info: Hyper figures OFF on input line 4377. +Package hyperref Info: Link nesting OFF on input line 4382. +Package hyperref Info: Hyper index ON on input line 4385. +Package hyperref Info: backreferencing OFF on input line 4392. +Package hyperref Info: Link coloring ON on input line 4395. +Package hyperref Info: Link coloring with OCG OFF on input line 4402. +Package hyperref Info: PDF/A mode OFF on input line 4407. + +(/usr/share/texmf-texlive/tex/generic/oberdiek/atbegshi.sty +Package: atbegshi 2008/07/31 v1.9 At begin shipout hook (HO) +) +\Hy@abspage=\count141 +\c@Item=\count142 +) +*hyperref using default driver hpdftex* +(/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def +File: hpdftex.def 2009/10/09 v6.79a Hyperref driver for pdfTeX +\Fld@listcount=\count143 +) +(/usr/share/texmf-texlive/tex/latex/ltxmisc/ulem.sty +\UL@box=\box61 +\UL@hyphenbox=\box62 +\UL@skip=\skip78 +\UL@hook=\toks35 +\UL@pe=\count144 +\UL@pixel=\dimen157 +\ULC@box=\box63 +Package: ulem 2000/05/26 +\ULdepth=\dimen158 +) +(/usr/share/texmf/tex/latex/xcolor/xcolor.sty +Package: xcolor 2007/01/21 v2.11 LaTeX color extensions (UK) + +(/etc/texmf/tex/latex/config/color.cfg +File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive +) +Package xcolor Info: Driver file: pdftex.def on input line 225. +LaTeX Info: Redefining \color on input line 702. +Package xcolor Info: Model `cmy' substituted by `cmy0' on input line 1337. +Package xcolor Info: Model `hsb' substituted by `rgb' on input line 1341. +Package xcolor Info: Model `RGB' extended on input line 1353. +Package xcolor Info: Model `HTML' substituted by `rgb' on input line 1355. +Package xcolor Info: Model `Hsb' substituted by `hsb' on input line 1356. +Package xcolor Info: Model `tHsb' substituted by `hsb' on input line 1357. +Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1358. +Package xcolor Info: Model `Gray' substituted by `gray' on input line 1359. +Package xcolor Info: Model `wave' substituted by `hsb' on input line 1360. +) +\SavedText=\box64 +\InnerBoxRule=\skip79 +\OuterBoxRule=\skip80 +\BoxSeparation=\skip81 +\SaveBoxSep=\skip82 + +(/usr/share/texmf-texlive/tex/latex/titlesec/ttlps.def +File: ttlps.def 2007/08/12 + + +Package titlesec Warning: You are using an old interface for page styles +(titlesec) You could proceed but don't complain if you run +(titlesec) into errors. + +) +\c@faq=\count145 + (/usr/share/texmf-texlive/tex/latex/listings/listings.sty +\lst@mode=\count146 +\lst@gtempboxa=\box65 +\lst@token=\toks36 +\lst@length=\count147 +\lst@currlwidth=\dimen159 +\lst@column=\count148 +\lst@pos=\count149 +\lst@lostspace=\dimen160 +\lst@width=\dimen161 +\lst@newlines=\count150 +\lst@lineno=\count151 +\lst@maxwidth=\dimen162 + +(/usr/share/texmf-texlive/tex/latex/listings/lstmisc.sty +File: lstmisc.sty 2007/02/22 1.4 (Carsten Heinz) +\c@lstnumber=\count152 +\lst@skipnumbers=\count153 +\lst@framebox=\box66 +) +(/usr/share/texmf-texlive/tex/latex/listings/listings.cfg +File: listings.cfg 2007/02/22 1.4 listings configuration +)) +Package: listings 2007/02/22 1.4 (Carsten Heinz) +\scriptindent=\skip83 +\methodindent=\skip84 +\methodwordlength=\skip85 +\aftermethod=\skip86 +) +\@indexfile=\write4 +\openout4 = `PBE2.idx'. + + +Writing index file PBE2.idx +\@glossaryfile=\write5 +\openout5 = `PBE2.glo'. + +Writing glossary file PBE2.glo +(./PBE2.aux + +LaTeX Warning: Label `mth:defaultlabel' multiply defined. + + +LaTeX Warning: Label `mth:defaultlabel' multiply defined. + +) +\openout1 = `PBE2.aux'. + +LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 56. +LaTeX Font Info: Try loading font information for TS1+cmr on input line 56. + (/usr/share/texmf-texlive/tex/latex/base/ts1cmr.fd +File: ts1cmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions +) +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 56. +LaTeX Font Info: ... okay on input line 56. +LaTeX Font Info: Try loading font information for T1+ppl on input line 56. + +(/usr/share/texmf-texlive/tex/latex/psnfss/t1ppl.fd +File: t1ppl.fd 2001/06/04 font definitions for T1/ppl. +) +*geometry auto-detecting driver* +*geometry detected driver: pdftex* +-------------------- Geometry parameters +paper: user defined +landscape: -- +twocolumn: -- +twoside: true +asymmetric: -- +h-parts: 54.2025pt, 334.61044pt, 54.2025pt +v-parts: 54.2025pt, 539.13469pt, 72.26999pt +hmarginratio: -- +vmarginratio: -- +lines: -- +heightrounded: -- +bindingoffset: 0.0pt +truedimen: -- +includehead: -- +includefoot: -- +includemp: -- +driver: pdftex +-------------------- Page layout dimensions and switches +\paperwidth 443.01544pt +\paperheight 665.60718pt +\textwidth 334.61044pt +\textheight 539.13469pt +\oddsidemargin -18.06749pt +\evensidemargin -18.06749pt +\topmargin -48.13498pt +\headheight 12.0pt +\headsep 18.06749pt +\footskip 25.29494pt +\marginparwidth 115.0pt +\marginparsep 7.0pt +\columnsep 10.0pt +\skip\footins 9.0pt plus 4.0pt minus 2.0pt +\hoffset 0.0pt +\voffset 0.0pt +\mag 1000 +\@twosidetrue \@mparswitchtrue +(1in=72.27pt, 1cm=28.45pt) +----------------------- +LaTeX Info: Redefining \microtypecontext on input line 56. +Package microtype Info: Generating PDF output. +Package microtype Info: Character protrusion enabled (level 2). +Package microtype Info: Using default protrusion set `alltext'. +Package microtype Info: No font expansion. +Package microtype Info: No tracking. +Package microtype Info: No adjustment of interword spacing. +Package microtype Info: No adjustment of character kerning. +(/usr/share/texmf-texlive/tex/latex/microtype/mt-ppl.cfg +File: mt-ppl.cfg 2005/11/16 v1.6 microtype config. file: Palatino (RS) +) +(/usr/share/texmf-texlive/tex/context/base/supp-pdf.mkii +[Loading MPS to PDF converter (version 2006.09.02).] +\scratchcounter=\count154 +\scratchdimen=\dimen163 +\scratchbox=\box67 +\nofMPsegments=\count155 +\nofMParguments=\count156 +\everyMPshowfont=\toks37 +\MPscratchCnt=\count157 +\MPscratchDim=\dimen164 +\MPnumerator=\count158 +\everyMPtoPDFconversion=\toks38 +) + +Package jurabib Info: 'hyperref' + 'tabularx' loaded, adapting footnote macro + +Package jurabib Info: *** jurabib set up for babel *** + +(/usr/share/texmf-texlive/tex/latex/jurabib/enjbbib.ldf +File: enjbbib.ldf jurabib English language definitions +) +LaTeX Info: Redefining \jbbtasep on input line 56. +LaTeX Info: Redefining \jbbfsasep on input line 56. +LaTeX Info: Redefining \jbbstasep on input line 56. +LaTeX Info: Redefining \bibbtasep on input line 56. +LaTeX Info: Redefining \bibbfsasep on input line 56. +LaTeX Info: Redefining \bibbstasep on input line 56. +LaTeX Info: Redefining \jbbtesep on input line 56. +LaTeX Info: Redefining \jbbfsesep on input line 56. +LaTeX Info: Redefining \jbbstesep on input line 56. +LaTeX Info: Redefining \bibbtesep on input line 56. +LaTeX Info: Redefining \bibbfsesep on input line 56. +LaTeX Info: Redefining \bibbstesep on input line 56. +LaTeX Info: Redefining \jbbtasep on input line 56. +LaTeX Info: Redefining \jbbfsasep on input line 56. +LaTeX Info: Redefining \jbbstasep on input line 56. +LaTeX Info: Redefining \bibbtasep on input line 56. +LaTeX Info: Redefining \bibbfsasep on input line 56. +LaTeX Info: Redefining \bibbstasep on input line 56. +LaTeX Info: Redefining \jbbtesep on input line 56. +LaTeX Info: Redefining \jbbfsesep on input line 56. +LaTeX Info: Redefining \jbbstesep on input line 56. +LaTeX Info: Redefining \bibbtesep on input line 56. +LaTeX Info: Redefining \bibbfsesep on input line 56. +LaTeX Info: Redefining \bibbstesep on input line 56. +LaTeX Info: Redefining \jbbtasep on input line 56. +LaTeX Info: Redefining \jbbfsasep on input line 56. +LaTeX Info: Redefining \jbbstasep on input line 56. +LaTeX Info: Redefining \bibbtasep on input line 56. +LaTeX Info: Redefining \bibbfsasep on input line 56. +LaTeX Info: Redefining \bibbstasep on input line 56. +LaTeX Info: Redefining \jbbtesep on input line 56. +LaTeX Info: Redefining \jbbfsesep on input line 56. +LaTeX Info: Redefining \jbbstesep on input line 56. +LaTeX Info: Redefining \bibbtesep on input line 56. +LaTeX Info: Redefining \bibbfsesep on input line 56. +LaTeX Info: Redefining \bibbstesep on input line 56. +LaTeX Info: Redefining \jbbtasep on input line 56. +LaTeX Info: Redefining \jbbfsasep on input line 56. +LaTeX Info: Redefining \jbbstasep on input line 56. +LaTeX Info: Redefining \bibbtasep on input line 56. +LaTeX Info: Redefining \bibbfsasep on input line 56. +LaTeX Info: Redefining \bibbstasep on input line 56. +LaTeX Info: Redefining \jbbtesep on input line 56. +LaTeX Info: Redefining \jbbfsesep on input line 56. +LaTeX Info: Redefining \jbbstesep on input line 56. +LaTeX Info: Redefining \bibbtesep on input line 56. +LaTeX Info: Redefining \bibbfsesep on input line 56. +LaTeX Info: Redefining \bibbstesep on input line 56. +Package hyperref Info: Link coloring ON on input line 56. + +(/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty +Package: nameref 2007/05/29 v2.31 Cross-referencing by name of section + +(/usr/share/texmf-texlive/tex/latex/oberdiek/refcount.sty +Package: refcount 2008/08/11 v3.1 Data extraction from references (HO) +) +\c@section@level=\count159 +LaTeX Info: Redefining \Ref on input line 396. +) +LaTeX Info: Redefining \ref on input line 56. +LaTeX Info: Redefining \pageref on input line 56. + (./PBE2.out) +(./PBE2.out) +\@outlinefile=\write6 +\openout6 = `PBE2.out'. + +\AtBeginShipoutBox=\box68 +LaTeX Info: Redefining \Ref on input line 56. +\c@lstlisting=\count160 +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <24.88> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 72. + (/usr/share/texmf-texlive/tex/latex/microtype/mt-cmr.cfg +File: mt-cmr.cfg 2008/02/29 v1.9a microtype config. file: Computer Modern Roman + (RS) +) +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <12> on input line 72. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <8> on input line 72. +LaTeX Font Info: External font `lmex10' loaded for size +(Font) <6> on input line 72. + +(/usr/share/texmf-texlive/tex/latex/microtype/mt-msa.cfg +File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) +) +(/usr/share/texmf-texlive/tex/latex/microtype/mt-msb.cfg +File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS) +) +Overfull \hbox (51.23436pt too wide) in paragraph at lines 72--72 + [][] + [] + +[1 + + + + + +{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2 + + +] (./PBE2.toc +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <10> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 2. +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <12> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 3. + [3] +LaTeX Font Info: Try loading font information for T1+phv on input line 104. + +(/usr/share/texmf-texlive/tex/latex/psnfss/t1phv.fd +File: t1phv.fd 2001/06/04 scalable font definitions for T1/phv. +) +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 8.50006pt on input line 104. + [4] [5] [6] [7]) +\tf@toc=\write7 +\openout7 = `PBE2.toc'. + + [8] +(./Preface/Preface2.tex +Chapter 1. +LaTeX Font Info: Font shape `T1/ppl/bx/n' in size <14.4> not available +(Font) Font shape `T1/ppl/b/n' tried instead on input line 40. +) [1 + + + + +] [2 + + +] [3] [4] (./Omnibrowser/Omnibrowser.tex +Chapter 2. +LaTeX Font Info: Font shape `T1/ppl/bx/it' in size <10> not available +(Font) Font shape `T1/ppl/b/it' tried instead on input line 68. +LaTeX Font Info: Font shape `T1/phv/m/it' in size <10> not available +(Font) Font shape `T1/phv/m/sl' tried instead on input line 68. +LaTeX Font Info: Font shape `T1/phv/m/sl' will be +(Font) scaled to size 8.50006pt on input line 68. + +Underfull \hbox (badness 10000) in paragraph at lines 68--69 + + [] + + +File: Omnibrowser/figures/filebrowser.png Graphic file (type png) + + [5 + + +] +LaTeX Font Info: Try loading font information for TS1+phv on input line 104. + + +(/usr/share/texmf-texlive/tex/latex/psnfss/ts1phv.fd +File: ts1phv.fd 2001/06/04 scalable font definitions for TS1/phv. +) +LaTeX Font Info: Font shape `TS1/phv/m/n' will be +(Font) scaled to size 8.50006pt on input line 104. +LaTeX Font Info: Try loading font information for T1+pcr on input line 107. + +(/usr/share/texmf-texlive/tex/latex/psnfss/t1pcr.fd +File: t1pcr.fd 2001/06/04 font definitions for T1/pcr. +) [6 <./Omnibrowser/figures/filebrowser.png (PNG copy)>] [7] [8] + +File: Omnibrowser/figures/command.png Graphic file (type png) + + [9 <./Omnibrowser/figures/command.png (PN +G copy)>] [10] [11] [12] [13] +LaTeX Font Info: Font shape `T1/pcr/m/it' in size <10> not available +(Font) Font shape `T1/pcr/m/sl' tried instead on input line 441. + [14] + +File: Omnibrowser/figures/CoreOnly.png Graphic file (type png) + + [15 <./Omnibrowser/figures/CoreOnly.png> +] [16] +File: Omnibrowser/figures/Core.png Graphic file (type png) + + [17 <./Omnibrowser/figures/Core.png>] +[18] [19] +File: Omnibrowser/figures/obbrowser.png Graphic file (type png) + + [20 <./Omnibrowser/figures/obbrowser.pn +g (PNG copy)>] + +File: Omnibrowser/figures/obInternal.png Graphic file (type png) + + + +File: Omnibrowser/figures/ob-graph.png Graphic file (type png) + + [21 <./Omnibrowser/figures/obInternal.pn +g>] +Underfull \hbox (badness 1748) in paragraph at lines 647--648 +[]\T1/ppl/m/n/10 The root node of the do-main graph is an-swered by the method + [] + +[22 <./Omnibrowser/figures/ob-graph.png>] + +File: Omnibrowser/figures/classSortFilter.png Graphic file (type png) + + +Underfull \hbox (badness 4608) in paragraph at lines 685--686 +[]\T1/ppl/m/n/10 When a metan-ode is asked for its chil-dren nodes (in method + [] + +[23 <./Omnibrowser/figures/classSortFilter.png>] +LaTeX Font Info: Try loading font information for TS1+ppl on input line 718. + + +(/usr/share/texmf-texlive/tex/latex/psnfss/ts1ppl.fd +File: ts1ppl.fd 2001/06/04 font definitions for TS1/ppl. +) [24] + +File: Omnibrowser/figures/BrowserFamily.png Graphic file (type png) + + [25 <./Omnibrowser/figures/BrowserF +amily.png>] + +Package Listings Warning: Text dropped after begin of listing on input line 765 +. + +[26] [27]) (./Glamour/Glamour.tex [28] +Chapter 3. +[29 + + +] + +File: Glamour/figures/cs_file_finder_final.png Graphic file (type png) + + [30 <./Glamour/figures/cs_file_f +inder_final.png (PNG copy)>] [31] + +File: Glamour/figures/classnavigator_wireframe.pdf Graphic file (type pdf) + [32 <./Glamour/figures/clas +snavigator_wireframe.pdf>] [33] + +File: Glamour/figures/showclasses.pdf Graphic file (type pdf) + + [34 <./Glamour/figures/showclasses.pdf>] +[35] + +File: Glamour/figures/treeandcategories.pdf Graphic file (type pdf) + + [36 <./Glamour/figures/treeandcateg +ories.pdf>] + +File: Glamour/figures/codenavigator.pdf Graphic file (type pdf) + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [37] + +File: Glamour/figures/classbrowser_wireframe.pdf Graphic file (type pdf) + [38 <./Glamour/figures/codenav +igator.pdf>] [39 <./Glamour/figures/classbrowser_wireframe.pdf>] [40] + +File: Glamour/figures/classbrowser.pdf Graphic file (type pdf) + + +Underfull \vbox (badness 7203) has occurred while \output is active [] + + [41 <./Glamour/figures/classbrowser.pdf>] [42] + +File: Glamour/figures/mondrian-presentation.pdf Graphic file (type pdf) + [43 <./Glamour/figures/mondrian +-presentation.pdf>] + +File: Glamour/figures/finder.pdf Graphic file (type pdf) + + +Underfull \hbox (badness 1215) in paragraph at lines 764--766 +[]\T1/ppl/m/n/10 To dis-cover other kinds of browsers, ex-plore the hi-er-ar-ch +y of the + [] + +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 6.80005pt on input line 775. +) (./LDAP/LDAP.tex [44 <./Glamour/figures/finder.pdf>] +Chapter 4. + +Underfull \hbox (badness 10000) in paragraph at lines 35--36 + + [] + +[45 + + +] +Underfull \hbox (badness 1210) in paragraph at lines 64--65 +[] []\T1/ppl/b/n/10 Définir une con-nex-ion.[] \T1/ppl/m/n/10 Créons une nou-ve +lle caté-gorie nom-mée 'Ap- + [] + +[46] + +Package Listings Warning: Text dropped after begin of listing on input line 141 +. + +[47] [48] [49] [50] +Underfull \hbox (badness 3333) in paragraph at lines 342--343 +[]\T1/ppl/m/n/10 Essayons notre méth-ode en sup-p-ri-mant dans l'annuaire, l'en +trée + [] + +[51] +Underfull \hbox (badness 7649) in paragraph at lines 358--361 +[] []\T1/ppl/b/n/10 Liens utiles[] [][]$\T1/phv/m/n/10 http : / / www . openlda +p . org/$[][]\T1/ppl/m/n/10 , [][]$\T1/phv/m/n/10 http : / / en . wikipedia . o +rg / wiki / LDAP$[][] [][]$http : / / fr . + [] + +) (./Mondrian/Mondrian.tex [52] +Chapter 5. + +Underfull \hbox (badness 10000) in paragraph at lines 30--31 + + [] + +[53 + + +] +File: Mondrian/figures/picture1.png Graphic file (type png) + + + +File: Mondrian/figures/picture2.png Graphic file (type png) + + + +File: Mondrian/figures/picture3.png Graphic file (type png) + + [54 <./Mondrian/figures/picture1.png> <./Mo +ndrian/figures/picture2.png> <./Mondrian/figures/picture3.png>] + +File: Mondrian/figures/picture4.png Graphic file (type png) + + + +File: Mondrian/figures/picture5.png Graphic file (type png) + + +Underfull \vbox (badness 8151) has occurred while \output is active [] + + [55 <./Mondrian/figures/picture4.png>] [56 <./Mondrian/figures/picture5.png>] + +File: Mondrian/figures/picture6.png Graphic file (type png) + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [57] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [58 <./Mondrian/figures/picture6.png>] [59] [60] [61] +Underfull \hbox (badness 1509) in paragraph at lines 339--340 +\T1/ppl/m/n/10 Each node may em-bed a view. This is achieved via the key-words + [] + +[62] [63] [64] [65] [66]) (./DBXTalk/DBXTalk.tex [67] [68 + + +] +Chapter 6. + +Underfull \hbox (badness 10000) in paragraph at lines 35--36 + + [] + + +File: DBXTalk/figures/dbx_architecture.png Graphic file (type png) + + +Underfull \vbox (badness 3547) has occurred while \output is active [] + + [69] +[70 <./DBXTalk/figures/dbx_architecture.png>] +Underfull \hbox (badness 3668) in paragraph at lines 108--108 + |[]\T1/ppl/b/n/14.4 Getting down to busi-ness with DBXTalk + [] + +[71] [72]) [73] [74 + + +] [75] [76] (./Exceptions/Exceptions.tex +Chapter 7. + +Underfull \hbox (badness 10000) in paragraph at lines 52--53 + + [] + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [77 + + +] +[78] +File: figures/pharo.png Graphic file (type png) + + [79 <./figures/pharo.png (PNG copy)>] [80] [81] + +File: Exceptions/figures/SimpleHierarchy.png Graphic file (type png) + + +Underfull \hbox (badness 2875) in paragraph at lines 317--323 +\T1/ppl/m/n/10 In Smalltalk, ex-cep-tions are, of course, ob-jects. In Pharo, a +n ex- + [] + + +Underfull \hbox (badness 2261) in paragraph at lines 317--323 +\T1/ppl/m/n/10 cep-tion is an in-stance of an ex-cep-tion class which is part o +f a hi- + [] + + +Underfull \hbox (badness 2735) in paragraph at lines 317--323 +\T1/ppl/m/n/10 er-ar-chy of ex-cep-tion classes. For ex-am-ple, be-cause the ex +-cep-tions + [] + +[82] +Underfull \hbox (badness 2237) in paragraph at lines 330--331 +[]\T1/ppl/m/n/10 The class [][][][] adds in-for-ma-tion to class [][][][] to + [] + + +Underfull \hbox (badness 1728) in paragraph at lines 330--331 +\T1/ppl/m/n/10 char-ac-ter-ize the spe-cific ab-nor-mal sit-u-a-tion it de-scri +bes. Specif-i-cally, + [] + +[83 <./Exceptions/figures/SimpleHierarchy.png>] [84] [85] [86] + +File: Exceptions/figures/Stack.png Graphic file (type png) + + [87 <./Exceptions/figures/Stack.png>] +[88] +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <12> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 566. +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 10.20007pt on input line 566. + [89] [90] [91] +Underfull \hbox (badness 1281) in paragraph at lines 697--699 +\T1/ppl/m/n/10 Depending on user in-put, the han-dler in [][][][] might \T1/phv +/m/n/10 re-turn + [] + +[92] +LaTeX Font Info: Font shape `TS1/phv/m/it' in size <10> not available +(Font) Font shape `TS1/phv/m/sl' tried instead on input line 713. +LaTeX Font Info: Font shape `TS1/phv/m/sl' will be +(Font) scaled to size 8.50006pt on input line 713. + +File: Exceptions/figures/Deprecation.png Graphic file (type png) + + [93 <./Exceptions/figures/Deprecation. +png (PNG copy)>] [94] +Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i +nput line 804. + [95] +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <14.4> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 849. +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 12.24008pt on input line 849. + [96] +LaTeX Font Info: Font shape `T1/phv/m/it' in size <9> not available +(Font) Font shape `T1/phv/m/sl' tried instead on input line 899. +LaTeX Font Info: Font shape `T1/phv/m/sl' will be +(Font) scaled to size 7.65005pt on input line 899. +LaTeX Font Info: Font shape `T1/phv/m/n' will be +(Font) scaled to size 7.65005pt on input line 899. + [97] [98] +Underfull \hbox (badness 10000) in paragraph at lines 999--1000 +[]\T1/ppl/m/n/10 The source code of the prim-i-tive is found in [][][] + [] + +[99] [100] + +File: Exceptions/figures/ExceptionSubclasses.png Graphic file (type png) + + [101] [102 <./Exceptions/figur +es/ExceptionSubclasses.png>] [103] [104]) (./Block/Block.tex [105] [106 + + +] +Chapter 8. + +Underfull \hbox (badness 10000) in paragraph at lines 36--37 + + [] + + +Underfull \vbox (badness 1033) has occurred while \output is active [] + + [107] +[108] [109] [110] [111] +Underfull \hbox (badness 2443) in paragraph at lines 295--297 +[] [][] \T1/ppl/m/n/10 Ar-gu-ments, tem-po-raries, in-stance vari-ables are lex +-i-cally scoped in + [] + +[112] + +File: Block/figures/blockClosureLocalTemp.pdf Graphic file (type pdf) + + [113 <./Block/figures/blockClosur +eLocalTemp.pdf>] + +File: Block/figures/blockClosureOutsideTemp.pdf Graphic file (type pdf) + + [114 <./Block/figures/blockClos +ureOutsideTemp.pdf>] [115] [116]) (./Float/Float.tex [117] [118 + + +] +Chapter 9. + +Underfull \hbox (badness 10000) in paragraph at lines 35--36 + + [] + +[119] +LaTeX Font Info: Font shape `T1/phv/bx/n' in size <10> not available +(Font) Font shape `T1/phv/b/n' tried instead on input line 81. +LaTeX Font Info: Font shape `T1/phv/b/n' will be +(Font) scaled to size 8.50006pt on input line 81. + [120] [121] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [122] +[123] +Underfull \hbox (badness 10000) in paragraph at lines 264--270 +[]\T1/ppl/m/n/10 Another mes-sage ex-ists to print ex-actly, you need to use + [] + + +Underfull \hbox (badness 1472) in paragraph at lines 264--270 +[][][][] \T1/ppl/m/n/10 in-stead. As ev-ery fi-nite Float is rep-re-sented + [] + +[124] [125] +Underfull \hbox (badness 1997) in paragraph at lines 348--350 +[]\T1/ppl/m/n/10 The fol-low-ing ex-pres-sion re-turns [][][][][][][][], which +means that: [][][] + [] + +[126]) [127] [128 + + +] [129] [130] [131 + + +] [132] (./FileSystem/FileSystem.tex +Chapter 10. + +Underfull \hbox (badness 10000) in paragraph at lines 36--37 + + [] + +[133 + + +] [134] [135] [136] [137] [138]) (./Announcements/Announcements.tex +[139] [140 + + +] +Chapter 11. + +Underfull \hbox (badness 1107) in paragraph at lines 48--55 +[]\T1/ppl/m/n/10 There is a so-lu-tion based on ex-plicit de-pen-den-cies also +called the + [] + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [141] +[142]) (./Sockets/Sockets.tex [143] [144 + + +] +Chapter 12. + +Underfull \hbox (badness 10000) in paragraph at lines 36--37 + + [] + + +File: Sockets/figures/socketConcept.pdf Graphic file (type pdf) + + [145] +Underfull \vbox (badness 3907) has occurred while \output is active [] + + [146 <./Sockets/figures/socketConcept.pdf>] [147] [148] [149] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [150] +[151] [152] [153] [154] [155]) (./Settings/Settings.tex [156] +Chapter 13. +[157 + + +] +File: Settings/figures/modularflow.pdf Graphic file (type pdf) + + [158 <./Settings/figures/modularflow.pdf +>] +Underfull \hbox (badness 10000) in paragraph at lines 85--87 +[]\T1/ppl/m/n/10 The Set-tings pack-age de-fines + [] + + +File: Settings/figures/SettingBrowser.png Graphic file (type png) + + [159] + +File: Settings/figures/popup0.png Graphic file (type png) + + + +File: Settings/figures/popup1.png Graphic file (type png) + + + +File: Settings/figures/popup2.png Graphic file (type png) + + [160 <./Settings/figures/SettingBrowser.png ( +PNG copy)> <./Settings/figures/popup0.png> <./Settings/figures/popup1.png> <./S +ettings/figures/popup2.png>] [161] + +File: Settings/figures/caseSensitiveFinds_setting_declaration1.png Graphic file + (type png) + + [162] +[163 <./Settings/figures/caseSensitiveFinds_setting_declaration1.png (PNG copy) +>] + +File: Settings/figures/caseSensitiveFinds_setting_declaration2.png Graphic file + (type png) + + [164 <./Sett +ings/figures/caseSensitiveFinds_setting_declaration2.png (PNG copy)>] [165] +Underfull \vbox (badness 8000) has occurred while \output is active [] + + [166] +[167] + +File: Settings/figures/configurableFormatter.png Graphic file (type png) + + +Overfull \hbox (3.64331pt too wide) in paragraph at lines 347--348 + [] + [] + +[168 <./Settings/figures/configurableFormatter.png (PNG copy)>] + +File: Settings/figures/smart-subtree1.png Graphic file (type png) + + + +File: Settings/figures/smart-subtree2.png Graphic file (type png) + + +Underfull \hbox (badness 1005) in paragraph at lines 407--408 +\T1/ppl/m/n/10 The par-ent set-ting value is given by eval-u-at-ing [] + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 407--408 +[][][][][][][][][][][]\T1/ppl/m/n/10 . If it re-turns [][][][], then the chil-d +ren + [] + + +Underfull \vbox (badness 2261) has occurred while \output is active [] + + [169 <./Settings/figures/smart-subtree1.png (PNG copy)> <./Settings/figures/sm +art-subtree2.png (PNG copy)>] +Underfull \vbox (badness 2205) has occurred while \output is active [] + + [170] + +File: Settings/figures/fullScreenMargin.png Graphic file (type png) + + [171 <./Settings/figures/fullScreen +Margin.png (PNG copy)>] + +File: Settings/figures/window-position-strategy.png Graphic file (type png) + [172 <./Settings/figures/w +indow-position-strategy.png (PNG copy)>] +Underfull \hbox (badness 7888) in paragraph at lines 523--524 +[]\T1/ppl/m/n/10 Concerning the value of the pref-er-ence it-self, if you in-sp +ect + [] + + +Underfull \hbox (badness 7981) in paragraph at lines 523--524 +[][][][][][][][]\T1/ppl/m/n/10 , you should no-tice that the re-sult is a + [] + + +Underfull \hbox (badness 10000) in paragraph at lines 523--524 +\T1/ppl/m/n/10 value among [][][][][][][][][][][] + [] + +[173] +File: Settings/figures/launcher.png Graphic file (type png) + + [174 <./Settings/figures/launcher.png (PNG +copy)>] [175] +LaTeX Font Info: Font shape `T1/ppl/bx/it' in size <12> not available +(Font) Font shape `T1/ppl/b/it' tried instead on input line 628. + + +File: Settings/figures/setting-style-load-dialog.png Graphic file (type png) + +LaTeX Font Info: Font shape `T1/ppl/bx/it' in size <14.4> not available +(Font) Font shape `T1/ppl/b/it' tried instead on input line 653. + +Underfull \vbox (badness 1320) has occurred while \output is active [] + + [176 <./Settings/figures/setting-style-load-dialog.png>] [177] + +File: Settings/figures/secondarySelectionColorV1.png Graphic file (type png) + [178 <./Settings/figures/ +secondarySelectionColorV1.png (PNG copy)>] [179] [180] + +File: Settings/figures/textSelectionColorSettings.png Graphic file (type png) + +Overfull \hbox (7.76552pt too wide) in paragraph at lines 796--797 + [] + [] + +) (./Regex/Regex.tex [181 <./Settings/figures/textSelectionColorSettings.png (P +NG copy)>] [182 + + +] +Chapter 14. + +Underfull \hbox (badness 10000) in paragraph at lines 42--43 + + [] + +[183] + +Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): +(hyperref) \kern 1.66672pt +(hyperref) removed on input line 71. + + +Package hyperref Warning: Token not allowed in a PDF string (PDFDocEncoding): +(hyperref) \kern 1.66672pt +(hyperref) removed on input line 71. + +File: figures/pharo.png Graphic file (type png) + +File: figures/pharo.png Graphic file (type png) + [184] + +File: Regex/figures/aWebDir.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + +Underfull \hbox (badness 1215) in paragraph at lines 114--114 +[] \T1/ppl/m/it/10 Add the fol-low-ing meth-ods and try it out by in-spect-ing +the re-sult of + [] + +[185 <./Regex/figures/aWebDir.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + +File: figures/pharo.png Graphic file (type png) + + [186] +File: figures/pharo.png Graphic file (type png) + +File: figures/pharo.png Graphic file (type png) + +[187] +File: figures/pharo.png Graphic file (type png) + +File: figures/pharo.png Graphic file (type png) + [188] +File: figures/pharo.png Graphic file (type png) + + [189] +File: figures/pharo.png Graphic file (type png) + +File: figures/pharo.png Graphic file (type png) + +[190] +File: Regex/figures/PBE-toc.png Graphic file (type png) + + [191] [192 <./Regex/figures/PBE-toc.png (PNG co +py)>] [193] [194] [195] [196] +Underfull \hbox (badness 1558) in paragraph at lines 728--729 +\T1/ppl/m/n/10 So far most of our ex-am-ples have used the [][][][] ex-ten-sion + method + [] + + +Underfull \hbox (badness 1005) in paragraph at lines 730--733 +[]\T1/ppl/m/n/10 Strings also un-der-stand the fol-low-ing mes-sages: [][][][][ +], + [] + +[197] [198] [199] [200] +Underfull \hbox (badness 1910) in paragraph at lines 922--929 +\T1/ppl/m/n/10 in this sec-tion are ac-tu-ally im-ple-mented by the matcher. \T +1/phv/m/n/10 Rx-Matcher + [] + + +Underfull \hbox (badness 1831) in paragraph at lines 922--929 +\T1/ppl/m/n/10 im-ple-ments the fol-low-ing meth-ods for it-er-at-ing over matc +hes within + [] + +[201] +Underfull \hbox (badness 5519) in paragraph at lines 945--951 +\T1/ppl/m/n/10 streams: [][][][][], [][][][][], [][][][][], + [] + +[202] [203]) [204] [205 + + +] [206] (./Monticello/Monticello.tex +Chapter 15. + +Underfull \hbox (badness 10000) in paragraph at lines 47--48 + + [] + +[207 + + +] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/monticelloBrowser.png Graphic file (type png) + + [208] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/perfectPackage.png Graphic file (type png) + + [209 <./Monticello/figures/monticel +loBrowser.png (PNG copy)> <./Monticello/figures/perfectPackage.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/saving.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + [210] +File: figures/pharo.png Graphic file (type png) + + [211 <./Monticello/figures/saving.png (PNG copy)>] + +File: Monticello/figures/dirty.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + +File: figures/pharo.png Graphic file (type png) + + + +File: Monticello/figures/repositoryinspector.png Graphic file (type png) + + [212 <./Monticello/figures/dir +ty.png (PNG copy)>] [213 <./Monticello/figures/repositoryinspector.png (PNG cop +y)>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/unload.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/loading.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + [214 <./Monticello/figures/unload.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + [215 <./Monticello/figures/loading.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/unsavedWarning.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/newerWarning.png Graphic file (type png) + + + +File: Monticello/figures/branch.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + [216 <./Monticello/figures/unsavedWarning.png (PNG cop +y)>] + +File: Monticello/figures/branching-merging.png Graphic file (type png) + + +Underfull \vbox (badness 1048) has occurred while \output is active [] + + [217 <./Monticello/figures/newerWarning.png (PNG copy)> <./Monticello/figures/ +branch.png (PNG copy)>] + +File: Monticello/figures/mergeButton.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/mergeTool.png Graphic file (type png) + + [218 <./Monticello/figures/branching-mer +ging.png> <./Monticello/figures/mergeButton.png (PNG copy)>] +Underfull \hbox (badness 4429) in paragraph at lines 454--455 +[]\T1/ppl/m/n/10 A plain type-face in-di-cates the def-i-ni-tion is non- + [] + + +File: Monticello/figures/keepReject.png Graphic file (type png) + + [219 <./Monticello/figures/mergeTool.pn +g (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/merged.png Graphic file (type png) + + [220 <./Monticello/figures/keepReject.png ( +PNG copy)> <./Monticello/figures/merged.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + + + +File: Monticello/figures/packageviewer.png Graphic file (type png) + + [221 <./Monticello/figures/packagevi +ewer.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/patchbrowser.png Graphic file (type png) + + [222 <./Monticello/figures/patchbrows +er.png (PNG copy)>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/historyviewer.png Graphic file (type png) + + [223 <./Monticello/figures/historyvi +ewer.png (PNG copy)>] + +File: Monticello/figures/backport.png Graphic file (type png) + + [224 <./Monticello/figures/backport.png>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/changes.png Graphic file (type png) + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [225 <./Monticello/figures/changes.png (PNG copy)>] + +File: Monticello/figures/dependencies.png Graphic file (type png) + + [226 <./Monticello/figures/dependenci +es.png>] +File: figures/pharo.png Graphic file (type png) + + +File: Monticello/figures/perfectDependencies.png Graphic file (type png) + [227 <./Monticello/figures/pe +rfectDependencies.png (PNG copy)>] [228] [229] [230] + +Package Listings Warning: Text dropped after begin of listing on input line 789 +. + +[231] +File: Monticello/figures/squeaksource2.png Graphic file (type png) + + +File: figures/pharo.png Graphic file (type png) + [232 <./Monticello/figures/squeaksource2.png (PNG copy +)>] +LaTeX Font Info: Try loading font information for T1+lmr on input line 853. + +(/usr/share/texmf/tex/latex/lm/t1lmr.fd +File: t1lmr.fd 2009/10/30 v1.6 Font defs for Latin Modern +) + +File: Monticello/figures/squeaksourcesetting.png Graphic file (type png) + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [233 <./Monticello/figures/squeaksourcesetting.png (PNG copy)>] [234] +Underfull \hbox (badness 10000) in paragraph at lines 923--924 +[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][ +][][][][][][][][][][][][][][][][][][][][][][][][][][][][] + [] + +[235]) (./Gofer/Gofer.tex [236] +Chapter 16. + +File: Gofer/figures/classExtension.pdf Graphic file (type pdf) + + + +File: Gofer/figures/browserExtension.png Graphic file (type png) + + [237 + + +] + +File: Gofer/figures/changeBrowser.png Graphic file (type png) + + [238 <./Gofer/figures/classExtension.pdf> + <./Gofer/figures/browserExtension.png>] + +File: Gofer/figures/Architecture3.pdf Graphic file (type pdf) + + [239 <./Gofer/figures/changeBrowser.png>] + +Underfull \vbox (badness 1831) has occurred while \output is active [] + + [240 <./Gofer/figures/Architecture3.pdf>] [241] [242] [243] +Underfull \vbox (badness 1742) has occurred while \output is active [] + + [244] +[245] [246] +Underfull \hbox (badness 1033) in paragraph at lines 428--429 +[]\T1/ppl/m/n/10 Now if you want load your pack-ages lo-cally re-mem-ber to set + up + [] + +[247]) (./Metacello/Metacello.tex [248] +Chapter 17. + +Underfull \hbox (badness 10000) in paragraph at lines 37--38 + + [] + +[249 + + +] [250] [251] [252] +Underfull \hbox (badness 2573) in paragraph at lines 146--147 +\T1/ppl/m/n/10 Core-MichaelJones.10' and 'CoolBrowser-Tests-JohnLewis.3' and wh +ose + [] + + +File: Metacello/figures/version01.png Graphic file (type png) + + +Underfull \hbox (badness 1888) in paragraph at lines 164--165 +\T1/ppl/m/n/10 JohnLewis.8' and a new pack-age 'CoolBrowser-Addons' with ver-si +on + [] + + +File: Metacello/figures/version02.png Graphic file (type png) + + [253 <./Metacello/figures/version01.png>] +[254 <./Metacello/figures/version02.png>] [255] + +File: Metacello/figures/version03.png Graphic file (type png) + + [256 <./Metacello/figures/version03.png>] + +Underfull \hbox (badness 2277) in paragraph at lines 284--285 +\T1/ppl/m/n/10 (SCM). From this point of view, a base-line is a well-defined, w +ell- + [] + + +File: Metacello/figures/version04.png Graphic file (type png) + + [257] [258 <./Metacello/figures/version04 +.png>] +File: Metacello/figures/version05.png Graphic file (type png) + + [259 <./Metacello/figures/version05.png>] + +File: Metacello/figures/version06.png Graphic file (type png) + + [260 <./Metacello/figures/version06.png>] +[261] [262] [263] + +File: Metacello/figures/version07.png Graphic file (type png) + + [264 <./Metacello/figures/version07.png>] + +Underfull \hbox (badness 1783) in paragraph at lines 622--623 +[]\T1/ppl/m/n/10 As you can see, in [][][][] there is re-dun-dant in-for-ma-tio +n for + [] + +[265] [266] [267] [268] [269] [270] [271] [272] +Underfull \hbox (badness 1831) in paragraph at lines 960--962 +[]\T1/ppl/m/n/10 Here this in-di-cates that there are no ver-sion for the [][][ +][] tag. + [] + + +Underfull \hbox (badness 1931) in paragraph at lines 960--962 +\T1/ppl/m/n/10 Us-ing a sym-bolic ver-sion that re-solves to [][][][] will re-s +ult in a + [] + +[273] +Underfull \vbox (badness 1194) has occurred while \output is active [] + + [274] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [275] +Underfull \vbox (badness 6110) has occurred while \output is active [] + + [276] +[277] [278] +Underfull \hbox (badness 1888) in paragraph at lines 1186--1187 +[]\T1/ppl/m/n/10 Note how the [][][][] sym-bolic ver-sion spec-i-fi-ca-tions we +re car-ried + [] + +[279] [280] [281] +Underfull \hbox (badness 10000) in paragraph at lines 1296--1298 +\T1/ppl/m/n/10 Now we are ready to start new de-vel-op-ment. The method + [] + + +Underfull \hbox (badness 3758) in paragraph at lines 1296--1298 +[][][][][][] \T1/ppl/m/n/10 per-forms the nec-es-sary mod-i-fi-ca-tion to + [] + +[282] [283] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + [284] +[285] [286] [287]) [288] [289 + + +] [290] (./Profiling/Profiling.tex +Chapter 18. +[291 + + +] [292] + +File: Profiling/figures/MessageTallyOne.png Graphic file (type png) + + +Underfull \vbox (badness 1371) has occurred while \output is active [] + + [293] +[294 <./Profiling/figures/MessageTallyOne.png>] +Underfull \hbox (badness 1270) in paragraph at lines 405--406 +\T1/ppl/m/n/10 the im-ple-men-ta-tion of the ex-e-cuted method in ad-di-tion (F +ig-ure [][]18.2[][]). + [] + + +File: Profiling/figures/TimeProfiler.png Graphic file (type png) + + [295 <./Profiling/figures/TimeProfiler +.png>] +File: Omnibrowser/figures/menu.pdf Graphic file (type pdf) + + + +File: Profiling/figures/testRunner.png Graphic file (type png) + + + +LaTeX Warning: `h' float specifier changed to `ht'. + +[296 <./Omnibrowser/figures/menu.pdf>] [297 <./Profiling/figures/testRunner.png +>] [298] [299] [300] [301] [302] + +File: Profiling/figures/sendTally.png Graphic file (type png) + + [303] +Underfull \hbox (badness 1755) in paragraph at lines 871--871 + |[]\T1/ppl/b/n/14.4 SpaceTally for Mem-ory Con-sump-tion per + [] + + +Underfull \vbox (badness 2012) has occurred while \output is active [] + + [304 <./Profiling/figures/sendTally.png>] [305] + +Package Listings Warning: Text dropped after begin of listing on input line 916 +. + +[306] +Underfull \hbox (badness 1092) in paragraph at lines 946--947 +[]\T1/ppl/m/n/10 The method [][][][] and [][][][] of-fer sim-ple bench-mark-ing + and + [] + +) +No file PBE2.bbl. +No file PBE2.ind. +[307] (./PBE2.aux) + +LaTeX Warning: There were multiply-defined labels. + + ) +(\end occurred inside a group at level 1) + +### simple group (level 1) entered at line 535 ({) +### bottom level +Here is how much of TeX's memory you used: + 18340 strings out of 495061 + 281459 string characters out of 1182621 + 804234 words of memory out of 3000000 + 16444 multiletter control sequences out of 15000+50000 + 87556 words of font info for 112 fonts, out of 3000000 for 9000 + 29 hyphenation exceptions out of 8191 + 40i,14n,44p,1094b,2185s stack positions out of 5000i,500n,10000p,200000b,50000s +{/usr/share/texmf/fonts/enc/dvips/lm/lm-rm.enc}{/usr/share/texm +f/fonts/enc/dvips/lm/lm-mathsy.enc}{/usr/share/texmf/fonts/enc/dvips/lm/lm-math +it.enc}{/usr/share/texmf-texlive/fonts/enc/dvips/base/8r.enc} +Output written on PBE2.pdf (315 pages, 6795530 bytes). +PDF statistics: + 8303 PDF objects out of 8907 (max. 8388607) + 4475 named destinations out of 5155 (max. 500000) + 23152 words of extra memory for PDF output out of 24883 (max. 10000000) + diff --git a/PBE2.out b/PBE2.out new file mode 100644 index 0000000..5568c0c --- /dev/null +++ b/PBE2.out @@ -0,0 +1,149 @@ +\BOOKMARK [0][-]{chapter.1}{Preface}{} +\BOOKMARK [-1][-]{part.1}{Frameworks}{} +\BOOKMARK [0][-]{chapter.2}{Creating Browsers with OmniBrowser}{part.1} +\BOOKMARK [1][-]{section.2.1}{Building a simple browser step by step}{chapter.2} +\BOOKMARK [1][-]{section.2.2}{Enhancing the file browser with actions, definitions and icons}{chapter.2} +\BOOKMARK [1][-]{section.2.3}{Graph and Metagraph of a Browser}{chapter.2} +\BOOKMARK [1][-]{section.2.4}{The OmniBrowser-based System Browser}{chapter.2} +\BOOKMARK [1][-]{section.2.5}{Evaluation and Discussions}{chapter.2} +\BOOKMARK [1][-]{section.2.6}{Chapter Summary}{chapter.2} +\BOOKMARK [0][-]{chapter.3}{Glamour}{part.1} +\BOOKMARK [1][-]{section.3.1}{Installation and first browser}{chapter.3} +\BOOKMARK [1][-]{section.3.2}{Tutorial: Implementing a code browser}{chapter.3} +\BOOKMARK [0][-]{chapter.4}{Using LDAP}{part.1} +\BOOKMARK [1][-]{section.4.1}{Pr\351sentation du protocole LDAP}{chapter.4} +\BOOKMARK [1][-]{section.4.2}{Les principales classes}{chapter.4} +\BOOKMARK [1][-]{section.4.3}{Pr\351sentation des classes principales}{chapter.4} +\BOOKMARK [1][-]{section.4.4}{Conclusion}{chapter.4} +\BOOKMARK [0][-]{chapter.5}{Mondrian}{part.1} +\BOOKMARK [1][-]{section.5.1}{Introduction}{chapter.5} +\BOOKMARK [1][-]{section.5.2}{First visualization}{chapter.5} +\BOOKMARK [1][-]{section.5.3}{Visualizing the collection framework}{chapter.5} +\BOOKMARK [1][-]{section.5.4}{Reshaping nodes}{chapter.5} +\BOOKMARK [1][-]{section.5.5}{Multiple edges}{chapter.5} +\BOOKMARK [1][-]{section.5.6}{Adding colors}{chapter.5} +\BOOKMARK [1][-]{section.5.7}{More on colors}{chapter.5} +\BOOKMARK [1][-]{section.5.8}{Popup view}{chapter.5} +\BOOKMARK [1][-]{section.5.9}{Subviews}{chapter.5} +\BOOKMARK [1][-]{section.5.10}{Forwarding events}{chapter.5} +\BOOKMARK [1][-]{section.5.11}{Events}{chapter.5} +\BOOKMARK [1][-]{section.5.12}{Interaction}{chapter.5} +\BOOKMARK [1][-]{section.5.13}{Conclusion}{chapter.5} +\BOOKMARK [0][-]{chapter.6}{DBXTalk}{part.1} +\BOOKMARK [1][-]{section.6.1}{DBXTalk Driver Architecture}{chapter.6} +\BOOKMARK [1][-]{section.6.2}{Installing DBXTalk OpenDBX Driver}{chapter.6} +\BOOKMARK [1][-]{section.6.3}{Getting down to business with DBXTalk OpenDBXDriver}{chapter.6} +\BOOKMARK [1][-]{section.6.4}{Creating a connection}{chapter.6} +\BOOKMARK [-1][-]{part.2}{Language}{} +\BOOKMARK [0][-]{chapter.7}{Handling exceptions}{part.2} +\BOOKMARK [1][-]{section.7.1}{Ensuring execution}{chapter.7} +\BOOKMARK [1][-]{section.7.2}{Handling non-local returns}{chapter.7} +\BOOKMARK [1][-]{section.7.3}{Exception handlers}{chapter.7} +\BOOKMARK [1][-]{section.7.4}{Error codes \204 don't do this!}{chapter.7} +\BOOKMARK [1][-]{section.7.5}{Specifying which Exceptions will be Handled}{chapter.7} +\BOOKMARK [1][-]{section.7.6}{Signaling an exception}{chapter.7} +\BOOKMARK [1][-]{section.7.7}{How breakpoints are Implemented}{chapter.7} +\BOOKMARK [1][-]{section.7.8}{How handlers are found}{chapter.7} +\BOOKMARK [1][-]{section.7.9}{Handling exceptions}{chapter.7} +\BOOKMARK [1][-]{section.7.10}{Resuming execution}{chapter.7} +\BOOKMARK [1][-]{section.7.11}{Passing exceptions on}{chapter.7} +\BOOKMARK [1][-]{section.7.12}{Resending exceptions}{chapter.7} +\BOOKMARK [1][-]{section.7.13}{Comparing outer with pass}{chapter.7} +\BOOKMARK [1][-]{section.7.14}{Catching sets of exceptions}{chapter.7} +\BOOKMARK [1][-]{section.7.15}{How exceptions are implemented}{chapter.7} +\BOOKMARK [1][-]{section.7.16}{Other kinds of Exception}{chapter.7} +\BOOKMARK [1][-]{section.7.17}{When not to use Exceptions}{chapter.7} +\BOOKMARK [1][-]{section.7.18}{Chapter Summary}{chapter.7} +\BOOKMARK [0][-]{chapter.8}{Block and Dynamic Behavior of Smalltalk-Runtime}{part.2} +\BOOKMARK [1][-]{section.8.1}{Basics}{chapter.8} +\BOOKMARK [1][-]{section.8.2}{Variables and Blocks}{chapter.8} +\BOOKMARK [1][-]{section.8.3}{Basics on Return}{chapter.8} +\BOOKMARK [1][-]{section.8.4}{Returning from inside a block}{chapter.8} +\BOOKMARK [1][-]{section.8.5}{Storing a block}{chapter.8} +\BOOKMARK [1][-]{section.8.6}{may be to trash}{chapter.8} +\BOOKMARK [1][-]{section.8.7}{Lexical Closure}{chapter.8} +\BOOKMARK [1][-]{section.8.8}{Conclusion}{chapter.8} +\BOOKMARK [0][-]{chapter.9}{Fun with Floats}{part.2} +\BOOKMARK [1][-]{section.9.1}{Never test equality on floats}{chapter.9} +\BOOKMARK [1][-]{section.9.2}{Disecting a Float}{chapter.9} +\BOOKMARK [1][-]{section.9.3}{With floats, printing is inexact}{chapter.9} +\BOOKMARK [1][-]{section.9.4}{Float rounding is also inexact}{chapter.9} +\BOOKMARK [1][-]{section.9.5}{Fun with Inexact representations}{chapter.9} +\BOOKMARK [1][-]{section.9.6}{Conclusion}{chapter.9} +\BOOKMARK [-1][-]{part.3}{Web}{} +\BOOKMARK [-1][-]{part.4}{Libraries}{} +\BOOKMARK [0][-]{chapter.10}{Files with FileSystem }{part.4} +\BOOKMARK [1][-]{section.10.1}{Getting started}{chapter.10} +\BOOKMARK [1][-]{section.10.2}{Navigating the Filesystem}{chapter.10} +\BOOKMARK [1][-]{section.10.3}{Design }{chapter.10} +\BOOKMARK [0][-]{chapter.11}{Announcements: an Object Dependency Framework}{part.4} +\BOOKMARK [1][-]{section.11.1}{A word about Component Coupling}{chapter.11} +\BOOKMARK [0][-]{chapter.12}{Sockets}{part.4} +\BOOKMARK [1][-]{section.12.1}{Basic Concepts}{chapter.12} +\BOOKMARK [1][-]{section.12.2}{A Simple TCP Client}{chapter.12} +\BOOKMARK [1][-]{section.12.3}{A Simple TCP Server}{chapter.12} +\BOOKMARK [1][-]{section.12.4}{SocketStream}{chapter.12} +\BOOKMARK [1][-]{section.12.5}{A Basic Chat Application}{chapter.12} +\BOOKMARK [1][-]{section.12.6}{Distributed Object Applications}{chapter.12} +\BOOKMARK [1][-]{section.12.7}{Chapter summary}{chapter.12} +\BOOKMARK [0][-]{chapter.13}{The Settings Framework}{part.4} +\BOOKMARK [1][-]{section.13.1}{Settings in a Nutshell}{chapter.13} +\BOOKMARK [1][-]{section.13.2}{The Settings Browser}{chapter.13} +\BOOKMARK [1][-]{section.13.3}{Declaring a setting}{chapter.13} +\BOOKMARK [1][-]{section.13.4}{Organizing your settings}{chapter.13} +\BOOKMARK [1][-]{section.13.5}{Providing more precise value domain}{chapter.13} +\BOOKMARK [1][-]{section.13.6}{Launching a script}{chapter.13} +\BOOKMARK [1][-]{section.13.7}{Setting styles management}{chapter.13} +\BOOKMARK [1][-]{section.13.8}{Extending the Settings Browser}{chapter.13} +\BOOKMARK [1][-]{section.13.9}{Conclusion}{chapter.13} +\BOOKMARK [0][-]{chapter.14}{Regular Expressions in Pharo}{part.4} +\BOOKMARK [1][-]{section.14.1}{Tutorial example\204generating a site map}{chapter.14} +\BOOKMARK [1][-]{section.14.2}{Regex syntax}{chapter.14} +\BOOKMARK [1][-]{section.14.3}{Regex API}{chapter.14} +\BOOKMARK [1][-]{section.14.4}{Implementation Notes by Vassili Bykov}{chapter.14} +\BOOKMARK [1][-]{section.14.5}{Chapter Summary}{chapter.14} +\BOOKMARK [-1][-]{part.5}{Source Management}{} +\BOOKMARK [0][-]{chapter.15}{Versioning your code with Monticello}{part.5} +\BOOKMARK [1][-]{section.15.1}{Basic usage}{chapter.15} +\BOOKMARK [1][-]{section.15.2}{Exploring Monticello repositories}{chapter.15} +\BOOKMARK [1][-]{section.15.3}{Advanced topics}{chapter.15} +\BOOKMARK [1][-]{section.15.4}{Getting a change set from two versions}{chapter.15} +\BOOKMARK [1][-]{section.15.5}{Kinds of repositories}{chapter.15} +\BOOKMARK [1][-]{section.15.6}{The .mcz file format}{chapter.15} +\BOOKMARK [1][-]{section.15.7}{Chapter Summary}{chapter.15} +\BOOKMARK [0][-]{chapter.16}{Gofer: Scripting package loading}{part.5} +\BOOKMARK [1][-]{section.16.1}{Preamble: Package management system}{chapter.16} +\BOOKMARK [1][-]{section.16.2}{What is Gofer?}{chapter.16} +\BOOKMARK [1][-]{section.16.3}{Using Gofer}{chapter.16} +\BOOKMARK [1][-]{section.16.4}{Gofer Actions}{chapter.16} +\BOOKMARK [1][-]{section.16.5}{Conclusion}{chapter.16} +\BOOKMARK [0][-]{chapter.17}{Managing projects with Metacello}{part.5} +\BOOKMARK [1][-]{section.17.1}{Introduction}{chapter.17} +\BOOKMARK [1][-]{section.17.2}{One tool for each job}{chapter.17} +\BOOKMARK [1][-]{section.17.3}{Metacello features}{chapter.17} +\BOOKMARK [1][-]{section.17.4}{A Simple Case}{chapter.17} +\BOOKMARK [1][-]{section.17.5}{Naming your configuration}{chapter.17} +\BOOKMARK [1][-]{section.17.6}{Managing package internal dependencies}{chapter.17} +\BOOKMARK [1][-]{section.17.7}{Baselining}{chapter.17} +\BOOKMARK [1][-]{section.17.8}{Groups}{chapter.17} +\BOOKMARK [1][-]{section.17.9}{Project Configuration Dependencies}{chapter.17} +\BOOKMARK [1][-]{section.17.10}{Pre and post code execution}{chapter.17} +\BOOKMARK [1][-]{section.17.11}{Platform specific package}{chapter.17} +\BOOKMARK [1][-]{section.17.12}{Symbolic Versions}{chapter.17} +\BOOKMARK [1][-]{section.17.13}{Load types}{chapter.17} +\BOOKMARK [1][-]{section.17.14}{Conditional loading}{chapter.17} +\BOOKMARK [1][-]{section.17.15}{Project version attributes}{chapter.17} +\BOOKMARK [1][-]{section.17.16}{Conclusion}{chapter.17} +\BOOKMARK [-1][-]{part.6}{Tools}{} +\BOOKMARK [0][-]{chapter.18}{Optimizing Application}{part.6} +\BOOKMARK [1][-]{section.18.1}{What does profiling mean?}{chapter.18} +\BOOKMARK [1][-]{section.18.2}{A simple example}{chapter.18} +\BOOKMARK [1][-]{section.18.3}{Code profiling in Pharo}{chapter.18} +\BOOKMARK [1][-]{section.18.4}{Read and interpret the results}{chapter.18} +\BOOKMARK [1][-]{section.18.5}{Illustrative Analysis}{chapter.18} +\BOOKMARK [1][-]{section.18.6}{Counting messages}{chapter.18} +\BOOKMARK [1][-]{section.18.7}{Memorized Fibonacci}{chapter.18} +\BOOKMARK [1][-]{section.18.8}{SpaceTally for Memory Consumption per Class}{chapter.18} +\BOOKMARK [1][-]{section.18.9}{Few advices}{chapter.18} +\BOOKMARK [1][-]{section.18.10}{How MessageTally is implemented?}{chapter.18} +\BOOKMARK [1][-]{section.18.11}{Chapter Summary}{chapter.18} diff --git a/PBE2.pdf b/PBE2.pdf new file mode 100644 index 0000000..3955461 Binary files /dev/null and b/PBE2.pdf differ diff --git a/PBE2.tex b/PBE2.tex index 3b732b6..90522bc 100644 --- a/PBE2.tex +++ b/PBE2.tex @@ -47,6 +47,7 @@ {Exceptions/figures/} {Mondrian/figures/} {Metacello/figures/} + {DBXTalk/figures/} {LittleNumbers/figures/} {Announcements/figures/} {Sockets/figures/} @@ -108,8 +109,13 @@ \part{Frameworks} \input{Mondrian/Mondrian.tex} % 80 % other examples (edges scoped) -%% should be luluified -% verify source code + +\input{DBXTalk/DBXTalk.tex} + +%% PetitParser Damien +%% Alien FFI +%% Iliad +%% Zinc \part{Language} \input{Exceptions/Exceptions.tex} %% stef diff --git a/PBE2.toc b/PBE2.toc new file mode 100644 index 0000000..6a77cf6 --- /dev/null +++ b/PBE2.toc @@ -0,0 +1,346 @@ +\select@language {english} +\contentsline {chapter}{\numberline {1}Preface}{1}{chapter.1} +\contentsline {part}{\numberline {I}Frameworks}{3}{part.1} +\contentsline {chapter}{\numberline {2}Creating Browsers with OmniBrowser}{5}{chapter.2} +\contentsline {section}{\numberline {2.1}Building a simple browser step by step}{5}{section.2.1} +\contentsline {section}{\numberline {2.2}Enhancing the file browser with actions, definitions and icons}{9}{section.2.2} +\contentsline {subsubsection}{Spawning browsers}{9}{subsubsection*.2} +\contentsline {subsubsection}{Creating new files}{11}{subsubsection*.3} +\contentsline {subsubsection}{Modifying files}{12}{subsubsection*.4} +\contentsline {subsubsection}{Distinguishing folders from plain files}{13}{subsubsection*.5} +\contentsline {subsubsection}{Coloring and font selection}{14}{subsubsection*.6} +\contentsline {section}{\numberline {2.3}Graph and Metagraph of a Browser}{15}{section.2.3} +\contentsline {subsection}{Overview of the Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser framework\xspace }{15}{subsection*.7} +\contentsline {paragraph}{Browser.}{15}{paragraph*.8} +\contentsline {paragraph}{Node.}{16}{paragraph*.9} +\contentsline {paragraph}{Metagraph.}{16}{paragraph*.10} +\contentsline {paragraph}{Command.}{16}{paragraph*.11} +\contentsline {paragraph}{Filter.}{16}{paragraph*.12} +\contentsline {paragraph}{Definition.}{17}{paragraph*.13} +\contentsline {subsection}{Core Behavior of the Framework}{17}{subsection*.14} +\contentsline {subsection}{Glueing Widgets with the Metagraph}{18}{subsection*.15} +\contentsline {paragraph}{Lists.}{19}{paragraph*.16} +\contentsline {paragraph}{Radio buttons.}{19}{paragraph*.17} +\contentsline {paragraph}{Menus.}{19}{paragraph*.18} +\contentsline {section}{\numberline {2.4}The Omni\discretionary {-}{}{}Brow\discretionary {-}{}{}ser\xspace -based System Browser}{19}{section.2.4} +\contentsline {subsection}{The Smalltalk\xspace System Browser}{20}{subsection*.19} +\contentsline {subsection}{System Browser Internals}{21}{subsection*.20} +\contentsline {paragraph}{Filtering of nodes.}{23}{paragraph*.21} +\contentsline {paragraph}{Widget notification.}{24}{paragraph*.22} +\contentsline {paragraph}{State of the browser.}{25}{paragraph*.23} +\contentsline {section}{\numberline {2.5}Evaluation and Discussions}{25}{section.2.5} +\contentsline {subsection}{Strengths}{26}{subsection*.24} +\contentsline {paragraph}{Ease of use.}{26}{paragraph*.25} +\contentsline {paragraph}{Explicit state transitions.}{26}{paragraph*.26} +\contentsline {paragraph}{Separation of domain and navigation.}{26}{paragraph*.27} +\contentsline {subsection}{Limitations}{27}{subsection*.28} +\contentsline {paragraph}{Hardcoded flow.}{27}{paragraph*.29} +\contentsline {section}{\numberline {2.6}Chapter Summary}{27}{section.2.6} +\contentsline {paragraph}{Acknowledgment.}{28}{paragraph*.30} +\contentsline {chapter}{\numberline {3}Glamour}{29}{chapter.3} +\contentsline {section}{\numberline {3.1}Installation and first browser}{29}{section.3.1} +\contentsline {section}{\numberline {3.2}Tutorial: Implementing a code browser}{32}{section.3.2} +\contentsline {subsection}{Running example}{32}{subsection*.31} +\contentsline {subsection}{Starting the Browser}{33}{subsection*.32} +\contentsline {subsection}{Another Presentation}{35}{subsection*.33} +\contentsline {subsection}{Multiple Origins}{36}{subsection*.34} +\contentsline {subsection}{Ports}{38}{subsection*.35} +\contentsline {subsection}{Reusing Browsers}{38}{subsection*.36} +\contentsline {subsection}{Actions}{42}{subsection*.37} +\contentsline {subsection}{Multiple Presentations}{42}{subsection*.38} +\contentsline {subsection}{Other Browsers}{43}{subsection*.39} +\contentsline {subsection}{Tutorial Conclusion}{44}{subsection*.40} +\contentsline {chapter}{\numberline {4}Using LDAP}{45}{chapter.4} +\contentsline {section}{\numberline {4.1}Pr\'esentation du protocole LDAP}{45}{section.4.1} +\contentsline {subsection}{Installation de LDAPlayer}{45}{subsection*.41} +\contentsline {section}{\numberline {4.2}Les principales classes}{46}{section.4.2} +\contentsline {paragraph}{D\'efinir une connexion.}{46}{paragraph*.42} +\contentsline {subsection}{Chercher des informations}{48}{subsection*.43} +\contentsline {subsection}{Modifier des attributs}{49}{subsection*.44} +\contentsline {subsection}{Cr\'eer une entr\'ee dans l'annuaire}{51}{subsection*.45} +\contentsline {subsection}{Supprimer une entr\'ee dans l'annuaire}{51}{subsection*.46} +\contentsline {section}{\numberline {4.3}Pr\'esentation des classes principales}{52}{section.4.3} +\contentsline {section}{\numberline {4.4}Conclusion}{52}{section.4.4} +\contentsline {paragraph}{Liens utiles}{52}{paragraph*.47} +\contentsline {chapter}{\numberline {5}Mondrian}{53}{chapter.5} +\contentsline {section}{\numberline {5.1}Introduction}{53}{section.5.1} +\contentsline {section}{\numberline {5.2}First visualization}{53}{section.5.2} +\contentsline {section}{\numberline {5.3}Visualizing the collection framework}{54}{section.5.3} +\contentsline {section}{\numberline {5.4}Reshaping nodes}{55}{section.5.4} +\contentsline {section}{\numberline {5.5}Multiple edges}{57}{section.5.5} +\contentsline {section}{\numberline {5.6}Adding colors}{59}{section.5.6} +\contentsline {section}{\numberline {5.7}More on colors}{60}{section.5.7} +\contentsline {section}{\numberline {5.8}Popup view}{61}{section.5.8} +\contentsline {section}{\numberline {5.9}Subviews}{62}{section.5.9} +\contentsline {section}{\numberline {5.10}Forwarding events}{64}{section.5.10} +\contentsline {section}{\numberline {5.11}Events}{65}{section.5.11} +\contentsline {section}{\numberline {5.12}Interaction}{66}{section.5.12} +\contentsline {section}{\numberline {5.13}Conclusion}{67}{section.5.13} +\contentsline {chapter}{\numberline {6}DBXTalk}{69}{chapter.6} +\contentsline {section}{\numberline {6.1}DBXTalk Driver Architecture}{69}{section.6.1} +\contentsline {section}{\numberline {6.2}Installing DBXTalk OpenDBX Driver}{70}{section.6.2} +\contentsline {section}{\numberline {6.3}Getting down to business with DBXTalk OpenDBXDriver}{71}{section.6.3} +\contentsline {section}{\numberline {6.4}Creating a connection}{71}{section.6.4} +\contentsline {subsection}{Connection special options}{72}{subsection*.48} +\contentsline {part}{\numberline {II}Language}{75}{part.2} +\contentsline {chapter}{\numberline {7}Handling exceptions}{77}{chapter.7} +\contentsline {section}{\numberline {7.1}Ensuring execution}{78}{section.7.1} +\contentsline {section}{\numberline {7.2}Handling non-local returns}{79}{section.7.2} +\contentsline {section}{\numberline {7.3}Exception handlers}{80}{section.7.3} +\contentsline {section}{\numberline {7.4}Error codes --- don't do this!}{81}{section.7.4} +\contentsline {section}{\numberline {7.5}Specifying which Exceptions will be Handled}{82}{section.7.5} +\contentsline {section}{\numberline {7.6}Signaling an exception}{83}{section.7.6} +\contentsline {section}{\numberline {7.7}How breakpoints are Implemented}{85}{section.7.7} +\contentsline {section}{\numberline {7.8}How handlers are found}{86}{section.7.8} +\contentsline {paragraph}{Nested Exceptions.}{88}{paragraph*.49} +\contentsline {section}{\numberline {7.9}Handling exceptions}{89}{section.7.9} +\contentsline {subsection}{Abandon the protected block}{89}{subsection*.50} +\contentsline {subsection}{Return a value with \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{return:}}{90}{subsection*.51} +\contentsline {subsection}{Retry a computation with \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{retry} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{retryUsing:}}{90}{subsection*.52} +\contentsline {section}{\numberline {7.10}Resuming execution}{91}{section.7.10} +\contentsline {subsection}{Example: Deprecation}{93}{subsection*.53} +\contentsline {section}{\numberline {7.11}Passing exceptions on}{94}{section.7.11} +\contentsline {section}{\numberline {7.12}Resending exceptions}{96}{section.7.12} +\contentsline {section}{\numberline {7.13}Comparing {\textsf {\textup {outer}}} with {\textsf {\textup {pass}}}}{97}{section.7.13} +\contentsline {section}{\numberline {7.14}Catching sets of exceptions}{97}{section.7.14} +\contentsline {section}{\numberline {7.15}How exceptions are implemented}{98}{section.7.15} +\contentsline {paragraph}{Storing Handlers.}{98}{paragraph*.54} +\contentsline {paragraph}{Finding Handlers.}{99}{paragraph*.55} +\contentsline {section}{\numberline {7.16}Other kinds of Exception}{101}{section.7.16} +\contentsline {section}{\numberline {7.17}When not to use Exceptions}{103}{section.7.17} +\contentsline {section}{\numberline {7.18}Chapter Summary}{104}{section.7.18} +\contentsline {paragraph}{Acknowledgments.}{105}{paragraph*.56} +\contentsline {chapter}{\numberline {8}Block and Dynamic Behavior of Smalltalk-Runtime}{107}{chapter.8} +\contentsline {section}{\numberline {8.1}Basics}{107}{section.8.1} +\contentsline {section}{\numberline {8.2}Variables and Blocks}{108}{section.8.2} +\contentsline {section}{\numberline {8.3}Basics on Return}{110}{section.8.3} +\contentsline {section}{\numberline {8.4}Returning from inside a block}{110}{section.8.4} +\contentsline {section}{\numberline {8.5}Storing a block}{112}{section.8.5} +\contentsline {section}{\numberline {8.6}may be to trash}{112}{section.8.6} +\contentsline {paragraph}{}{112}{paragraph*.57} +\contentsline {section}{\numberline {8.7}Lexical Closure}{113}{section.8.7} +\contentsline {section}{\numberline {8.8}Conclusion}{115}{section.8.8} +\contentsline {chapter}{\numberline {9}Fun with Floats}{119}{chapter.9} +\contentsline {section}{\numberline {9.1}Never test equality on floats}{119}{section.9.1} +\contentsline {paragraph}{About \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{closeTo:}.}{120}{paragraph*.58} +\contentsline {paragraph}{About Scaled Decimals.}{120}{paragraph*.59} +\contentsline {section}{\numberline {9.2}Disecting a Float}{120}{section.9.2} +\contentsline {paragraph}{Building a Float.}{121}{paragraph*.60} +\contentsline {section}{\numberline {9.3}With floats, printing is inexact}{124}{section.9.3} +\contentsline {section}{\numberline {9.4}Float rounding is also inexact}{125}{section.9.4} +\contentsline {section}{\numberline {9.5}Fun with Inexact representations}{126}{section.9.5} +\contentsline {section}{\numberline {9.6}Conclusion}{127}{section.9.6} +\contentsline {part}{\numberline {III}Web}{129}{part.3} +\contentsline {part}{\numberline {IV}Libraries}{131}{part.4} +\contentsline {chapter}{\numberline {10}Files with FileSystem }{133}{chapter.10} +\contentsline {section}{\numberline {10.1}Getting started}{133}{section.10.1} +\contentsline {section}{\numberline {10.2}Navigating the Filesystem}{134}{section.10.2} +\contentsline {subsection}{Opening Read- and Write-Streams}{135}{subsection*.61} +\contentsline {section}{\numberline {10.3}Design }{136}{section.10.3} +\contentsline {subsection}{Path}{136}{subsection*.62} +\contentsline {subsection}{Filesystem}{137}{subsection*.63} +\contentsline {subsection}{Reference}{137}{subsection*.64} +\contentsline {subsection}{Locator}{138}{subsection*.65} +\contentsline {subsection}{Enumeration}{138}{subsection*.66} +\contentsline {subsection}{Visitors}{139}{subsection*.67} +\contentsline {chapter}{\numberline {11}Announcements: an Object Dependency Framework}{141}{chapter.11} +\contentsline {section}{\numberline {11.1}A word about Component Coupling}{141}{section.11.1} +\contentsline {paragraph}{An Example.}{142}{paragraph*.68} +\contentsline {chapter}{\numberline {12}Sockets}{145}{chapter.12} +\contentsline {section}{\numberline {12.1}Basic Concepts}{145}{section.12.1} +\contentsline {subsection}{Socket}{145}{subsection*.69} +\contentsline {subsection}{TCP/IP vs. UDP/IP}{146}{subsection*.70} +\contentsline {section}{\numberline {12.2}A Simple TCP Client}{147}{section.12.2} +\contentsline {subsection}{Create a TCP Socket}{147}{subsection*.71} +\contentsline {subsection}{Connect a TCP Socket to some Server}{147}{subsection*.72} +\contentsline {subsection}{Exchange Data with Server}{148}{subsection*.73} +\contentsline {subsection}{Close a Socket}{149}{subsection*.74} +\contentsline {section}{\numberline {12.3}A Simple TCP Server}{150}{section.12.3} +\contentsline {subsection}{TCP Socket Server Life-cyle}{151}{subsection*.75} +\contentsline {subsection}{Serving Basic Example}{151}{subsection*.76} +\contentsline {subsection}{Echo Server Class}{152}{subsection*.77} +\contentsline {section}{\numberline {12.4}SocketStream}{155}{section.12.4} +\contentsline {subsection}{Client Side SocketStream}{155}{subsection*.78} +\contentsline {section}{\numberline {12.5}A Basic Chat Application}{156}{section.12.5} +\contentsline {section}{\numberline {12.6}Distributed Object Applications}{156}{section.12.6} +\contentsline {section}{\numberline {12.7}Chapter summary}{156}{section.12.7} +\contentsline {chapter}{\numberline {13}The Settings Framework}{157}{chapter.13} +\contentsline {section}{\numberline {13.1}Settings in a Nutshell}{157}{section.13.1} +\contentsline {subsubsection}{Vocabulary}{158}{subsubsection*.79} +\contentsline {section}{\numberline {13.2}The Settings Browser}{159}{section.13.2} +\contentsline {subsection}{Browsing and changing preference values}{159}{subsection*.80} +\contentsline {subsection}{Searching and filtering settings}{161}{subsection*.81} +\contentsline {section}{\numberline {13.3}Declaring a setting}{161}{section.13.3} +\contentsline {paragraph}{}{162}{paragraph*.82} +\contentsline {subsection}{The header}{162}{subsection*.83} +\contentsline {subsection}{The pragma}{163}{subsection*.84} +\contentsline {subsection}{The setting configuration}{163}{subsection*.85} +\contentsline {subsection}{More about the target}{165}{subsection*.86} +\contentsline {subsection}{More about default values}{166}{subsection*.87} +\contentsline {section}{\numberline {13.4}Organizing your settings}{167}{section.13.4} +\contentsline {subsection}{Declaring a parent}{167}{subsection*.88} +\contentsline {subsection}{Declaring a group}{167}{subsection*.89} +\contentsline {subsection}{Declaring a sub-tree}{167}{subsection*.90} +\contentsline {subsubsection}{Optional sub-tree}{168}{subsubsection*.91} +\contentsline {subsection}{Ordering your settings}{170}{subsection*.92} +\contentsline {section}{\numberline {13.5}Providing more precise value domain}{171}{section.13.5} +\contentsline {subsection}{Declaring a range setting}{171}{subsection*.93} +\contentsline {subsection}{Selecting among a list}{172}{subsection*.94} +\contentsline {section}{\numberline {13.6}Launching a script}{173}{section.13.6} +\contentsline {section}{\numberline {13.7}Setting styles management}{175}{section.13.7} +\contentsline {subsection}{Scripting settings}{175}{subsection*.95} +\contentsline {subsection}{Integrating a style in the \textit {Settings Browser}\xspace }{176}{subsection*.96} +\contentsline {section}{\numberline {13.8}Extending the \textit {Settings Browser}\xspace }{177}{section.13.8} +\contentsline {subsection}{Declaring selection settings individually}{177}{subsection*.97} +\contentsline {subsection}{An improved selection preference design}{178}{subsection*.98} +\contentsline {section}{\numberline {13.9}Conclusion}{181}{section.13.9} +\contentsline {chapter}{\numberline {14}Regular Expressions in Pharo\xspace }{183}{chapter.14} +\contentsline {section}{\numberline {14.1}Tutorial example\,---\,generating a site map}{184}{section.14.1} +\contentsline {subsection}{Accessing the web directory}{184}{subsection*.99} +\contentsline {subsection}{Pattern matching HTML files}{185}{subsection*.100} +\contentsline {subsection}{Caching the regex}{186}{subsection*.101} +\contentsline {subsection}{Accessing web pages}{187}{subsection*.102} +\contentsline {subsection}{String substitutions}{187}{subsection*.103} +\contentsline {subsection}{Extracting regex matches}{188}{subsection*.104} +\contentsline {subsection}{More string substitutions}{190}{subsection*.105} +\contentsline {subsection}{Generating the site map}{190}{subsection*.106} +\contentsline {section}{\numberline {14.2}Regex syntax}{191}{section.14.2} +\contentsline {subsection}{Character classes}{194}{subsection*.107} +\contentsline {subsection}{Special character classes}{196}{subsection*.108} +\contentsline {subsection}{Matching boundaries}{197}{subsection*.109} +\contentsline {section}{\numberline {14.3}Regex API}{197}{section.14.3} +\contentsline {subsection}{Matching prefixes and ignoring case}{197}{subsection*.110} +\contentsline {subsection}{Enumeration interface}{198}{subsection*.111} +\contentsline {subsection}{Replacement and translation}{198}{subsection*.112} +\contentsline {subsection}{Lower-level interface}{199}{subsection*.113} +\contentsline {subsection}{The Matcher}{199}{subsection*.114} +\contentsline {subsection}{Matching}{199}{subsection*.115} +\contentsline {subsection}{Subexpression matches}{200}{subsection*.116} +\contentsline {subsection}{Enumeration and Replacement}{201}{subsection*.117} +\contentsline {subsection}{Error Handling}{202}{subsection*.118} +\contentsline {section}{\numberline {14.4}Implementation Notes by Vassili Bykov}{203}{section.14.4} +\contentsline {paragraph}{What to look at first.}{203}{paragraph*.119} +\contentsline {paragraph}{Caveats}{203}{paragraph*.120} +\contentsline {paragraph}{Acknowledgments}{203}{paragraph*.121} +\contentsline {section}{\numberline {14.5}Chapter Summary}{203}{section.14.5} +\contentsline {part}{\numberline {V}Source Management}{205}{part.5} +\contentsline {chapter}{\numberline {15}Versioning your code with Monticello\xspace }{207}{chapter.15} +\contentsline {section}{\numberline {15.1}Basic usage}{208}{section.15.1} +\contentsline {subsection}{Running example --- perfect numbers}{208}{subsection*.122} +\contentsline {subsection}{Launching Monticello\xspace }{208}{subsection*.123} +\contentsline {subsection}{Creating a package}{209}{subsection*.124} +\contentsline {subsection}{Committing changes}{210}{subsection*.125} +\contentsline {subsection}{Class extensions}{211}{subsection*.126} +\contentsline {subsection}{``Clean'' and ``Dirty'' packages}{212}{subsection*.127} +\contentsline {subsection}{The Repository inspector}{212}{subsection*.128} +\contentsline {subsection}{Loading, unloading and updating packages}{214}{subsection*.129} +\contentsline {subsection}{Branching}{215}{subsection*.130} +\contentsline {subsection}{Merging}{216}{subsection*.131} +\contentsline {section}{\numberline {15.2}Exploring Monticello\xspace repositories}{221}{section.15.2} +\contentsline {subsection}{Browse}{221}{subsection*.132} +\contentsline {subsection}{Changes}{222}{subsection*.133} +\contentsline {subsection}{History}{223}{subsection*.134} +\contentsline {section}{\numberline {15.3}Advanced topics}{223}{section.15.3} +\contentsline {subsection}{Backporting}{223}{subsection*.135} +\contentsline {subsection}{Dependencies}{226}{subsection*.136} +\contentsline {subsection}{Class initialization}{228}{subsection*.137} +\contentsline {section}{\numberline {15.4}Getting a change set from two versions}{229}{section.15.4} +\contentsline {section}{\numberline {15.5}Kinds of repositories}{230}{section.15.5} +\contentsline {paragraph}{HTTP.}{230}{paragraph*.138} +\contentsline {paragraph}{FTP.}{230}{paragraph*.139} +\contentsline {paragraph}{GOODS.}{231}{paragraph*.140} +\contentsline {paragraph}{Directory.}{231}{paragraph*.141} +\contentsline {paragraph}{Directory with Subdirectories.}{231}{paragraph*.142} +\contentsline {paragraph}{SMTP.}{231}{paragraph*.143} +\contentsline {paragraph}{Programmatically adding repositories}{231}{paragraph*.144} +\contentsline {subsection}{Using SqueakSource\xspace }{232}{subsection*.145} +\contentsline {section}{\numberline {15.6}The .mcz file format}{234}{section.15.6} +\contentsline {paragraph}{File contents}{234}{paragraph*.146} +\contentsline {paragraph}{Source code encoding}{235}{paragraph*.147} +\contentsline {paragraph}{Metadata encoding}{235}{paragraph*.148} +\contentsline {section}{\numberline {15.7}Chapter Summary}{235}{section.15.7} +\contentsline {chapter}{\numberline {16}Gofer: Scripting package loading}{237}{chapter.16} +\contentsline {section}{\numberline {16.1}Preamble: Package management system}{237}{section.16.1} +\contentsline {paragraph}{Packages.}{237}{paragraph*.149} +\contentsline {paragraph}{Package Versioning System.}{238}{paragraph*.150} +\contentsline {paragraph}{Distributed architecture of Monticello.}{239}{paragraph*.151} +\contentsline {section}{\numberline {16.2}What is Gofer?}{240}{section.16.2} +\contentsline {section}{\numberline {16.3}Using Gofer}{241}{section.16.3} +\contentsline {subsection}{Package Identification}{242}{subsection*.152} +\contentsline {section}{\numberline {16.4}Gofer Actions}{242}{section.16.4} +\contentsline {subsection}{Loading several packages}{242}{subsection*.153} +\contentsline {subsection}{Other protocols}{244}{subsection*.154} +\contentsline {subsection}{Working with remote servers}{245}{subsection*.155} +\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{merge}, \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{update} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{revert} operations.}{245}{paragraph*.156} +\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{commit} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{commit:} operations.}{246}{paragraph*.157} +\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{localChanges} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{remoteChanges} operations.}{246}{paragraph*.158} +\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{unload} operation.}{246}{paragraph*.159} +\contentsline {paragraph}{The \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{fetch} and \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{push} operations.}{247}{paragraph*.160} +\contentsline {subsection}{Automating Answers}{248}{subsection*.161} +\contentsline {section}{\numberline {16.5}Conclusion}{248}{section.16.5} +\contentsline {chapter}{\numberline {17}Managing projects with Metacello}{249}{chapter.17} +\contentsline {section}{\numberline {17.1}Introduction}{249}{section.17.1} +\contentsline {section}{\numberline {17.2}One tool for each job}{250}{section.17.2} +\contentsline {section}{\numberline {17.3}Metacello features}{251}{section.17.3} +\contentsline {section}{\numberline {17.4}A Simple Case}{251}{section.17.4} +\contentsline {paragraph}{Creating a new version.}{253}{paragraph*.162} +\contentsline {section}{\numberline {17.5}Naming your configuration}{254}{section.17.5} +\contentsline {subsection}{Loading a Metacello configuration}{254}{subsection*.163} +\contentsline {section}{\numberline {17.6}Managing package internal dependencies}{255}{section.17.6} +\contentsline {section}{\numberline {17.7}Baselining}{257}{section.17.7} +\contentsline {paragraph}{Loading baselines.}{258}{paragraph*.164} +\contentsline {paragraph}{New version.}{259}{paragraph*.165} +\contentsline {section}{\numberline {17.8}Groups}{259}{section.17.8} +\contentsline {paragraph}{Examples.}{261}{paragraph*.166} +\contentsline {paragraph}{Default group.}{262}{paragraph*.167} +\contentsline {section}{\numberline {17.9}Project Configuration Dependencies}{262}{section.17.9} +\contentsline {subsection}{Depending on project without configuration}{262}{subsection*.168} +\contentsline {subsection}{Depending on project with configuration}{263}{subsection*.169} +\contentsline {section}{\numberline {17.10}Pre and post code execution}{266}{section.17.10} +\contentsline {section}{\numberline {17.11}Platform specific package}{268}{section.17.11} +\contentsline {section}{\numberline {17.12}Symbolic Versions}{270}{section.17.12} +\contentsline {subsection}{Project Blessing and Loading}{271}{subsection*.170} +\contentsline {subsection}{Standard Symbolic Versions}{272}{subsection*.171} +\contentsline {subsubsection}{Hints.}{274}{subsubsection*.172} +\contentsline {subsection}{Project Startup}{277}{subsection*.173} +\contentsline {subsubsection}{Create Configuration and Initial Baseline}{277}{subsubsection*.174} +\contentsline {subsection}{Create Initial Literal Version}{278}{subsection*.175} +\contentsline {subsection}{Validation}{279}{subsection*.176} +\contentsline {subsection}{Save Initial Configuration}{280}{subsection*.177} +\contentsline {subsection}{Development Cycle}{280}{subsection*.178} +\contentsline {subsubsection}{Platform Testing}{281}{subsubsection*.179} +\contentsline {subsubsection}{Release}{281}{subsubsection*.180} +\contentsline {subsection}{Open New Version for Development}{282}{subsection*.181} +\contentsline {subsubsection}{Configuration Checkpoints}{282}{subsubsection*.182} +\contentsline {subsection}{Update Project Structure}{283}{subsection*.183} +\contentsline {section}{\numberline {17.13}Load types}{284}{section.17.13} +\contentsline {section}{\numberline {17.14}Conditional loading}{285}{section.17.14} +\contentsline {section}{\numberline {17.15}Project version attributes}{287}{section.17.15} +\contentsline {section}{\numberline {17.16}Conclusion}{288}{section.17.16} +\contentsline {part}{\numberline {VI}Tools}{289}{part.6} +\contentsline {chapter}{\numberline {18}Optimizing Application}{291}{chapter.18} +\contentsline {section}{\numberline {18.1}What does profiling mean?}{291}{section.18.1} +\contentsline {section}{\numberline {18.2}A simple example}{292}{section.18.2} +\contentsline {paragraph}{The method \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{timeToRun}.}{292}{paragraph*.184} +\contentsline {paragraph}{The method \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{bench}.}{293}{paragraph*.185} +\contentsline {section}{\numberline {18.3}Code profiling in Pharo}{293}{section.18.3} +\contentsline {subsection}{MessageTally}{294}{subsection*.186} +\contentsline {subsection}{Integration in the programming environment}{295}{subsection*.187} +\contentsline {paragraph}{Via the World menu.}{295}{paragraph*.188} +\contentsline {paragraph}{Via the Test Runner.}{296}{paragraph*.189} +\contentsline {section}{\numberline {18.4}Read and interpret the results}{296}{section.18.4} +\contentsline {subsection}{**Tree**: Cumulative information}{298}{subsection*.190} +\contentsline {subsection}{**Leaves**: leaf methods}{298}{subsection*.191} +\contentsline {subsection}{**Memory**}{299}{subsection*.192} +\contentsline {subsection}{**GCs**}{300}{subsection*.193} +\contentsline {section}{\numberline {18.5}Illustrative Analysis}{301}{section.18.5} +\contentsline {paragraph}{Using a \lstinline [mathescape=false,backgroundcolor=\color {white},basicstyle={\sffamily \upshape }]{Stream} for string concatenation.}{301}{paragraph*.194} +\contentsline {paragraph}{String preallocation.}{302}{paragraph*.195} +\contentsline {paragraph}{An experiment.}{302}{paragraph*.196} +\contentsline {section}{\numberline {18.6}Counting messages}{303}{section.18.6} +\contentsline {section}{\numberline {18.7}Memorized Fibonacci}{303}{section.18.7} +\contentsline {section}{\numberline {18.8}SpaceTally for Memory Consumption per Class}{305}{section.18.8} +\contentsline {section}{\numberline {18.9}Few advices}{305}{section.18.9} +\contentsline {section}{\numberline {18.10}How MessageTally is implemented?}{306}{section.18.10} +\contentsline {section}{\numberline {18.11}Chapter Summary}{307}{section.18.11} +\contentsfinish diff --git a/PBE2.url b/PBE2.url new file mode 100644 index 0000000..b462abd --- /dev/null +++ b/PBE2.url @@ -0,0 +1 @@ +%%% jurabib url repository diff --git a/VMIntro/.VMIntro.tex.properties.xml b/VMIntro/.VMIntro.tex.properties.xml new file mode 100644 index 0000000..4615656 --- /dev/null +++ b/VMIntro/.VMIntro.tex.properties.xml @@ -0,0 +1 @@ + \ No newline at end of file