text:
Patent application title: Configurable object graph traversal with redirection for garbage collection
Tatu J. Ylonen (Espoo, FI)
IPC8 Class: AG06F1200FI
USPC Class:
Class name: Electrical computers and digital processing systems: memory storage accessing and control control technique
Publication date: 2010-09-02
Patent application number: 20100223433
Sign up to receive free email alerts when patent applications with chosen keywords are published SIGN UP
A configurable object graph traversal component with redirection
capability for use in garbage collectors and other related applications.
The component may be implemented in either hardware or in software, and
provides an interface that allows reuse of the same component for the
various traversal tasks performed during garbage collection. The
interface supports redirecting traversal to new copies of moved objects,
updating referring cells, performing cycle detection efficiently, and in
some embodiments also supports selecting the direction of traversal,
handling exits from the traversed memory region specially, and providing
access to the old address of copied cells.
1. A machine comprising: at least one configurable traversal component for
traversing an object graph stored in one or more memory devices, the
component comprising:a means for starting the traversala means for
inputting the initial cellan interface for signaling from the traversal
component to at least one configuration component, the interface
comprising:a means for passing the memory address of the cell currently
being examined, anda means for indicating when the address is valid;an
interface for signaling from at least one configuration component to the
traversal component, the interface comprising:a means for indicating that
traversing can continue by recursing into the current cella means for
indicating that traversing can continue by skipping the current cella
means for redirecting the traversal to a cell other than the one received
from the traversal component;a means for reading information from the
memory devices in which the object graph is stored; anda means for
indicating when the traversal is complete.
2. The machine of claim 1, wherein at least one configuration component comprises a cycle detection means.
3. The machine of claim 1, wherein at least one traversal component further comprises:a means for inputting the start address and size of the memory region to traverse, anda means for indicating to the configuration component when an exit from the region being traversed is encountered.
4. The machine of claim 1, wherein at least one traversal component further comprises:a means for indicating in which direction to traverse the cells within each object.
5. The machine of claim 1, wherein at least one traversal component further comprises:a means for indicating whether non-heap cells should be indicated to the configuration component.
6. The machine of claim 1, wherein at least one traversal component further comprises:a means for indicating the size of the current cell to the configuration means.
7. The machine of claim 1, wherein at least one traversal component further comprises:a means for indicating to the configuration component the old address of a cell in an object that has been redirected to a new address.
8. The machine of claim 1, wherein the stack of at least one traversal component has fixed size.
9. The machine of claim 1, wherein the traversal component is implemented at least partially in semiconductor logic.
10. The machine of claim 1, wherein the stack is semiconductor memory embedded within the traversal component.
11. The machine of claim 1, wherein the traversal component is implemented at least partially in computer executable software stored in one or more memory devices in the machine.
12. A method of traversing an object graph stored in one or more memory devices in a computing device, the method comprising:inputting the initial cell to be traversed to a traversal componentinitializing, by the traversal component, a range from the initial cellwhile unprocessed cells remain in the range, performing the following steps repeatedly by the traversal component:computing the address of the current cell to traverse and reading the current cellinvoking a configuration component, and supplying the current cell and its address to the configuration componentobtaining a new address to which traversal is to be redirected from the configuration componentif the new address is a special value indicating that the current cell should not be traversed, continuing with the next cellpushing the current range on stack if it still contains unprocessed cellscomputing a new range from the new address returned by the configuration component; andwhile the stack is not empty, popping a range from the stack and repeating the above step.
13. The method of claim 12, wherein also the size of the object denoted by the current cell is supplied to the configuration component.
14. A computer readable medium having a computer program embodied therein, the computer program operable to control a computing device to perform:inputting the initial cell to be traversedinitializing a range from the initial cellwhile unprocessed cells remain in the range:computing the address of the current cell to traverse and reading the current cellinvoking a configuration component, and supplying the current cell and its address to the configuration componentobtaining a new address to which traversal is to be redirected from the configuration componentif the new address is a special value indicating that the current cell should not be traversed, continuing with the next cellpushing the current range on stack if it still contains unprocessed cellscomputing a new range from the new address returned by the configuration component; andwhile the stack is not empty, popping a range from the stack and repeating the above step.
[0001]Not Applicable
[0002]Not Applicable
[0003]The present invention relates to traversing an object graph in a computer system, particularly to a component for traversing an object graph in a machine employing garbage collection in a computational device.
[0004]Garbage collectors, distributed object systems, persistent object stores, serialization methods, and a number of other mechanisms in a computer system must efficiently traverse an object graph in memory. The object graph is often cyclic, may comprise shared portions, may be distributed across multiple computing systems, etc. Many object types may be supported. For copying or compacting garbage collectors, the objects may be moved during tracing, and referring pointers may need to be updated.
[0005]Many ways of implementing such traversal are known in the garbage collection literature, including recursive, iterative, and work list based variants. An extensive survey of the garbage collection literature can be found in the book R. Jones and R. Lins: Garbage Collection: Algorithms for Dynamic Memory Management, Wiley, 1996, including descriptions of many algorithms for traversing (tracing) an object graph with or without copying. Significant newer work exists e.g. in the areas of lock-free work queues, work stealing, and parallelizing various garbage collection operations (including tracing). It is generally known how to implement such traversing mechanisms, though it seems likely that further improvements will still be made in this area.
[0006]High performance mechanisms for implementing serialization, distributed object systems and persistent object stores can benefit greatly from having low-level access to the object graph, at a level similar to that available to a garbage collector. Each of these systems generally uses traversal mechanisms that are similar to, but not identical, to the traversal performed by a garbage collector. Even within the garbage collection area, things such as SATB (snapshot-at-the-beginning) tracing for global garbage cycle detection, popular object garbage collection, nursery collection, older generation collection, and mature object space (containing objects having survived many generations) collection may all utilize slightly different mechanisms and require different actions to be performed during the traversal. Known garbage collection systems implement a dedicated object graph traversing mechanism wherever one is needed, or at least have very limited reuse of the same mechanism.
[0007]Many abstract data type libraries and graph manipulation libraries offer a generic mechanism for traversing a graph (whether cyclic or not). Known traversal mechanisms fall into two categories: those that call a given function for each object of the graph, and those that use an iterator object to store the context of the traversal, and provide functions for getting the first object and getting the next object using the iterator.
[0008]Known generic graph traversal mechanisms cannot, however, be used for garbage collection, because advanced garbage collection systems move (copy, compact) at least some objects during garbage collection and need to update pointers that refer to moved objects from other objects. No generic graph traversal interface that fills the requirements is known. (But as already noted, most garbage collectors contain highly specialized traversal mechanisms that are used to implement copying/moving/compacting.)
[0009]It would be desirable to have a single mechanism for performing object graph traversal that could be utilized wherever needed when implementing garbage collection and related operations. Such operations are extremely performance-critical, and have requirements that do not exist in general purpose graph manipulation systems.
[0010]An objective of the present invention is to define an interface that can be used to connect a single configurable traversal component to the various components that need traversal functionality in a computer system, whether implemented in hardware or in software.
[0011]One aspect of the invention is a configurable traversal component that provides such an interface and its embodiment in a computer system. It supports redirecting the traversal to new copies of objects, and provides mechanisms by which the referring pointers can be efficiently updated.
[0012]Another aspect of the invention is a method for performing traversal using such a component and a configuration object working through its interface.
[0013]Very few garbage collectors to date have been implemented in hardware to any substantial degree (except for read and write barriers, and specialized tag bit handling). Implementing the traversal and substantial other parts in hardware could be of interest especially for small, power-constrained devices that implement significant functionality in custom ASICs (Application Specific Integrated Circuits) anyway. The main motivation there would be reducing power consumption, as even though the processors on such systems may be fast enough to perform garbage collection without disruption, many orders of magnitude fewer logic gates will need to change state if the traversal and other common garbage collection operations are implemented using special hardware as dedicated state machines on an ASIC as opposed to a full software implementation. It is expected that power consumption will remain a major problem on such machines for many years as there is continuing pressure to make mobile devices smaller, lighter, more wearable, and to make their batteries last longer. Some of the tasks likely to be performed by future mobile devices, such as voice control, speech-to-text conversion, automatic translation and intelligent information analysis may be quite compute intensive and frequently utilize garbage collection.
[0014]In software, besides code size reduction (which is important in mobile devices), having only one instance of the traversal component allows better locality in the instruction cache (thus fewer external memory accesses, which reduces power consumption), simplifies maintenance of the software, makes it much easier to change or extend object layouts, and generally encourages using better algorithms in various parts of the system as they can be implemented without reimplementing the traversal functionality in each case (in practice, for example, many garbage collectors support popular objects but do not bother to implement their garbage collection, because of the significant work needed for building yet another traversal mechanism). Having a single implementation also makes it more cost-effective to optimize the traversal mechanism as far as possible.
[0015]FIG. 1 illustrates an embodiment of a configurable traversal component.
[0016]FIG. 2 illustrates the state machine of the configurable traversal component in one possible embodiment.
[0017]FIG. 3 illustrates a computer system comprising a configurable traversal component and several configuration components connected to it.
[0018]FIG. 1 illustrates an embodiment of a configurable traversal component (100) according to the present invention. (101) illustrates a means for starting the traversal. It could be implemented e.g. as a dedicated wire carrying a logic signal, or as a special code or packet transmitted or written over a control bus (any known bus architectures, serial or parallel, electrical or optical, synchronous or asynchronous, of any voltage or differentiality, proprietary or standard, could be used with the present invention). (102) illustrates a means for inputting the initial cell (or address of such cell) to the component (from some control logic that initiates the traversal). Cell here means something identifying an object; some cells may be self-contained (e.g., an integer with tag bits indicating it is an integer) or pointers to objects with descriptors. The type of the objects may be known a priori, or additional bits may be passed with an address to indicate the type of the object. The type may also be determined from the address. Essentially any known cell structure for garbage collected programming environments, whether boxed or not, may be used. Normally, the cell permits the component to determine the address of the initial object in memory.
[0019](110) represents a clock input to the component. Preferably at least some of the control signals are synchronized to the clock; however, there may be more than one clock, such as a separate clock for the memory bus (111) that provides a means for reading information from the memory devices in which the object graph is stored. The memory bus may be any known memory bus, including e.g. interfaces to SRAM, SDRAM, DDR2, or DDR3. It may also be a standard bus that can be used to access memory, such as PCI, HyperTransport or QuickPath. The memory bus may connect directly to memory, or may connect to some kind of memory access arbitration logic or an interconnection fabric (e.g., PCI bridge or some kind of routing logic). In some embodiments the traversal component may itself contain a memory device that stores at least part of the object graph; at least in such cases the memory bus may also permit other components to access the memory within the traversal component. The memory bus may also be used to access a stack stored in a memory device; however, the stack may also be embedded in the traversal component.
[0020]The traversal component is intended to interface with one or more configuration components (configurators) that specify the actions to be performed for each object as it is traversed, and also controls various aspects of the traversal. In a hardware implementation it may be desirable to instantiate a single generic component (e.g. based on a VHDL or Verilog description) as multiple separate logic circuits in an ASIC, each instance with its own configuration component attached. Alternatively, the configurable traversal component may be instantiated once, and a known multiplexing mechanism used for passing the control signals between the traversal component and the appropriate configuration component at each time. (Intermediate variants are also possible.)
[0021]In the case of a software implementation, both approaches are clearly possible, but the latter would probably be preferable at least in environments where memory (code) space is limited, such as in mobile devices. In a software implementation much of the signaling could be implemented using function calls and/or callbacks, and the multiplexing could be performed using e.g. global variables, a thread-local context data structure, thread-local registers, and/or a thread-local stack. In a mixed software-hardware implementation the boundary between hardware and software could reside e.g. at the interface between the traversal component and the configuration component, or within either of these components. In an advantageous division the traversal and the most common operations performed during traversal (such as object marking and copying into an already allocated LAB) could be implemented in hardware, but e.g. the allocation of a new LAB (thread-local allocation buffer) implemented by a trap or interrupt that transfers control to software.
[0022]To be able to implement required garbage collection operations in a garbage collector that at least sometimes moves (copies, compacts) objects the configuration means must generally receive not only the current cell being traversed, but also the address of the memory location containing that cell (note that the cell may be self-contained or a pointer to an object). The address is needed for updating the referring pointer when the object is moved. (The update itself need not necessarily happen during the processing of that particular object by the configuration means.)
[0023]The interface for signaling from the traversal component to a configuration component comprises a means for passing the memory address of the cell currently being examined (120). It (and generally the other values being passed) may be passed e.g. using a parallel bus, a serial bus, some kind of messaging in a hardware implementation, or e.g. in a global variable, thread-local variable, stack, or preferably a register in a software implementation.
[0024]Since the traversal component needs to read and inspect the cell in many embodiments, it may read the contents of the cell before passing the address to the configuration means. In such embodiments the interface preferably also comprises a means for passing the cell itself (121) to the configuration means, so that it does not need to read it again.
[0025]The traversal component also has a means for indicating to the configuration component when the address (and cell, if applicable) is valid (122). In a message-oriented architecture this is naturally indicated by the receipt of a message also containing the address (a separate message could also be used). In an embodiment with a parallel bus this would most naturally be signaled by a logic signal (OBJ_STROBE) that switches to a particular logic value when the data lines are valid. In software, this is preferably indicated by the occurrence of a function call to the configuration component.
[0026]The traversal component also has a means for indicating when the traversal is complete (124). This is preferably a logic signal, but could also be e.g. a message. In a software implementation this situation would preferably be indicated by returning from a function implementing a generic traversal mechanism.
[0027]The configuration component has an interface for signaling some information back to the traversal component. In most embodiments the time needed by the configuration component for processing (e.g. copying) an object varies between objects. It thus has a means for indicating when the configuration component is done handling the current cell. It also has a means for indicating what to do with the object (whether to recurse into it, or whether to skip it). In the preferred embodiment, there is a means for indicating that traversing can continue by recursing into the current cell (141), and there is also a means for indicating that traversing can continue but the current cell should be skipped (140).
[0028]It is an essential element of the present invention that there also be a means for the configuration component to redirect the traversal to a cell other than the one received from the traversal component. In one embodiment, this is implemented by a separate address returning means (144) and a redirect indicator means (143); however, they can also be combined. With this mechanism, a configuration component that effects copying the objects can cause the traversal component to traverse the new copy of the object, and the memory address of the cell currently being examined can be used to update the referring pointers to objects referenced from the just copied object.
[0029]In software, it is preferable that the function implementing the configuration component returns a single value, where this value can be any of: [0030]a special "skip the current cell" value, or [0031]a new cell from which to continue traversing.
[0032]The special value could be e.g. a value with all bits set, or some other bit pattern that is not a valid cell in the particular system.
[0033]The new cell could be either the cell provided by the traversal component, or it could be some other cell, typically referring to the new copy of the object after copying it (possibly read from a forwarding pointer or an array containing new addresses). A pointer could also be returned instead of a cell.
[0034]In some embodiments other return values could also be used. For example, it would be possible to have the traversal component perform at least simple checking whether the cell is a heap cell and whether it points to within a region being currently traversed (as indicated e.g. by a start address and length), and have the configuration component provide two functions, an object function that is called for all heap cells within the region, and an exit function that is called for all heap cells pointing out from the region. The object function could have a special return value that causes the traversal component to call the exit function for the cell, even though it pointed to within the region (this could be useful e.g. for treating references to cells with more than one reference as exits, as may be desirable in garbage collectors that make use of trees of objects headed by an object with more than one reference, also called multiobjects in the co-owned application U.S. Ser. No. 12/147,419 by the same inventor; this reference also contains several code snippets that can serve as examples of configuration components).
[0035]In hardware the special values could be indicated for example by a separate logic signal, a flag in some packet, a special packet or message type, or by a special cell value as in software.
[0036]In many embodiments it is also desirable to have a means by which the configuration component can abort the traversal (142). This could be, e.g., a special logic signal, a special message type, or a special returned cell value.
[0037]In some embodiments the traversal component may offer additional control mechanisms. For example, it may accept as input the start address of a memory region to traverse (103) and the size of the area (104) (equivalently, e.g. start address and end address could be provided, as the size can be trivially computed as `end-start`); such inputs allow the traversal component to determine whether a heap cell points to within the memory region of interest, and it may e.g. only indicate such cells to the configuration component that are located within this region. Alternatively, it could indicate cells pointing to outside this region as exits, using a separate exit indicator signal (EXIT_STROBE) (123) or function to inform the configuration component when an exit (cell pointing out from the current region) is being examined. The traversal component could also have a separate means for indicating whether exits are to be indicated at all (105).
[0038]Another example would be a means for indicating whether self-contained cells (i.e., non-heap cells, or cells that do not contain a valid memory address) should be indicated to the configuration component (106).
[0039]There are also applications where it is sometimes desirable to traverse cells within an object in the reverse order from the order in which they are normally traversed (see e.g. U.S. Ser. No. 12/201,514). It is thus desirable in some embodiments of the present invention to have a means for selecting the direction of traversal (107) in the traversal component.
[0040]In many embodiments the traversal component can also provide other useful information to the configuration component at little extra computational cost. For example, it may determine the size of the current object (126) and pass that to the configuration object, so that it is readily available for e.g. allocating space for the copy of an object (or counting the size of a tree of objects, or incrementally calculating the amount of space needed for a group of objects). Another example is that the traversal component may track the old address of objects that are copied (and for which the traversal component is redirected to the new address), and provide this to the configuration means (125). This may be needed in some embodiments, such as for computing an index to the `WRBM` bitmap when implementing the method of U.S. Ser. No. 12/201,514. The old address can be computed by saving the pointer to the old object in addition to the returned (redirected) object, and indexing it by the current cell index just as one would index the pointer to the current range. The pointer to the old object could be saved in the stack with the range.
[0041]One important aspect of traversing an object graph is detection of cycles and shared data structures. This can be performed on either side of the interface between the traversal component and the configuration component, depending on the embodiment.
[0042]While it would generally be preferable to perform it in the traversal component to maximize the reuse of the same logic, it tends to be a highly performance-critical element of the overall operations where traversal is used, and often (such as when using forwarding pointers during garbage collection) it can be achieved as a side product of something that would need to be done or recorded anyway. There is also variation as to whether it is enough to just detect cycles, in which case e.g. a bitmap covering the region being traversed may be sufficient. If also e.g. forwarding pointers or multiobject identifiers must be stored (and they cannot be stored or it is not desirable to store them in place of the original objects), then an array with larger elements may be used. In some cases the use of a hash table may be desirable.
[0043]The most effective method for performing cycle detection also depends on whether more than one thread may be processing the same memory region in parallel. In the case of more than one concurrent thread processing overlapping memory areas, something like atomic instructions (such as compare-and-swap) may be needed for cycle detection. These instructions are very expensive, often corresponding to more than a hundred ordinary instructions. The cost can usually be avoided if the control logic invoking the traversal component can guarantee that only one thread will be processing the memory area simultaneously. Making this selection efficiently within the traversal component would require implementing several mechanisms therein, and even then there would be extra overhead especially in software implementations.
[0044]It is thus preferable to perform cycle detection (including shared object detection) in the configuration object. It must be performed somewhere, but it can be in either the traversal component or in one or more configuration components.
[0045]FIG. 2 illustrates the state machine of a possible embodiment of the traversal component. It is well known how to implement state machines in hardware, using either flip-flop chains or registers containing a state number. It is also well known how to implement state machines in software (whether representing the state number explicitly in a variable, whether coding it implicitly in the program counter register, or in some other way). The flow chart also illustrates a method of performing traversal. It is generally known in the art how to implement a traversal function for an object graph; however, the possibility of redirecting the traversal to a new object in a generic traversal function is not known in the prior art. Also, the ability to specify the traversal order for cells within an object appears new, and serves a useful purpose in multiobject garbage collection.
[0046]The traversal begins at (200). It is assumed that this embodiment takes as input a pointer to the initial cell (`p`), direction of traversal (`direction`, with e.g. 1 indicating left-to-right and '1 right-to-left). Additionally, the configuration component to use is selected; in a hardware implementation this could be done by configuring a multiplexer of some kind; in a software implementation an identifier (e.g., a function pointer) for the configuration object could be passed as argument.
[0047]It is assumed that the generic traversal mechanism has a stack memory area. In a hardware implementation this would preferably be a dedicated memory area within the traversal component. In a software implementation it could be in thread-local storage (passed to the traversal function e.g. in a thread-specific context structure, as a thread-local variable, or as an argument) or in the thread's stack. In the description it is assumed that the stack has a fixed maximum size; however, it would also be possible to use a stack with an overflow handling mechanism. A fixed size stack is particularly desirable in a hardware implementation, and the mechanisms described in U.S. Ser. No. 12/147,419 and U.S. Ser. No. 12/388,543 by the same inventor can be used to ensure that a fixed size stack suffices. In the preferred embodiment there is no need to support work stealing; however, embodiments incorporating work stealing are also possible.
[0048]At (201), various registers (or variables) are initialized. This may includes for example `sp` (stack pointer), `idx` (index to a cell within current object), and `idxe` (limit index).
[0049]At (202), it is checked if all cells of the current range have already been processed. If not, execution continues to (203); if yes, then execution continues to (214), where it is checked whether the stack is empty, and if not, (215) pops a previous context (`idx`, `idxe`, and `p`) from the stack and returns to (202). If the stack is empty, execution of the traversal completes at (216) and the completion is signaled to whatever triggered the traversal.
[0050]At (203) the address of the current memory cell is computed. In the preferred embodiment, it is `p+idx`. In other embodiments `p` could point directly to the current cell, and an end pointer (limiting pointer) could be used instead of `idxe` (a limiting index). The index is also advanced (typically by adding +1 or -1 to it, depending on direction).
[0051]At (204) the current cell is read from memory. This may involve whatever protocol and whatever delays would typically be associated with the memory interface (110) used.
[0052]At (205) the configuration component is invoked, passing control to it and suspending the traversal component until it indicates that the traversal component can continue. In a hardware implementation this can mean sending the cell and the address of the current cell to the configuration object, indicating availability of an object, and waiting for the configuration object to signal that it has completed processing the cell. In software this could mean a function or method call through a function pointer to the configuration object.
[0053]At (206) the return value is obtained from the configuration object. In the preferred embodiment it is the new cell to process (either the same one provided to the configuration object or a different one). It can also be a special invalid cell value, such as SKIP to skip the current cell (e.g. because it points to outside the current region), or ABORT (abort traversal). The SKIP value is checked at (207) and the ABORT value at (208).
[0054]From here on, "returned cell" shall mean the cell returned by the object function, or the original cell if the configuration component did not redirect it to a new address.
[0055]At (209) the returned cell is decoded to determine its size (including both pointer data and other fields), the offset at which the first cell containing a pointer is in the object, and the number of cells containing pointers. In some embodiments the entire object may always contain pointers, in which case the offset may be redundant. In other embodiments there may be cells containing pointers intermixed with cells containing other data types (e.g., floating point values). Alternatively, tagged cells may be intermixed with untagged raw values. In such cases the decode function can advantageously return a bitmap indicating which cells contain valid pointers (e.g., with the corresponding bit set to one if the cell contains a tagged value). Self-contained (e.g., small integers) would have size (and number of tagged cells) zero. The bitmap could be used to filter which cells to pass to the configuration object.
[0056]At (210) it is tested if the number of cells containing pointers (or tagged cells) is zero, and if so, traversing continues from (202) to process the next cell.
[0057](211) tests if more cells remain in the current range. If so, it (preferably pointer, index, limit index) is pushed to the stack in (212).
[0058]At (213) a new pointer, index, and limit index are computed from the returned cell for traversing the cell we just decoded. The pointer may be directly the cell, or it may be computed from the cell e.g. by untagging it. The offset of the first pointer cell is added to it (alternatively, it could be added to the index and the limit index). For forward traversal, the index is preferably set to 0; for backward traversal, to `count -1`. The limit index is set to `count` for forward traversal and to -for backward traversal. These define the new range, which will be used in next iteration.
[0059]It should be noted that many of the steps could be implemented in a different order or grouped differently. For example, in some embodiments decoding the cell (209) would advantageously be done before invoking the configuration object at (205), for example in cases where the configuration object should have access to the size of the object. Some or all of the steps may be implemented in hardware. A pointer could be advanced instead of index (eliminating `idx`). A limit pointer could be used instead of `idxe`.
[0060]In software, the traversal may be started by making a call to the machine instructions that implement the traversal component. The component may be implemented as a function call (possibly inlined), though a macro implementation is also possible. The preferred means for interfacing software components is a function call, and arguments can be used to pass and input the various signals and values to the function. The configuration component can be implemented as one or more function calls that are called by the generic traversal means. In one embodiment it provides just one function, which is called for each cell. In another embodiment it provides two function calls, one that is called for each object, and another that is called for each exit from the traversed region. The functions are passed as argument(s) to the generic traversal means, e.g. as function pointers in the C programming language, as a table or structure containing function pointers, or in some object-oriented languages as a configuration object that implements the interface functions as methods (in which they would typically be actually implemented as calls through a special call table, often called `vtable`). In some languages an object conforming to a defined interface specification would be used; however, the low-level implementation of these (as implemented by the compiler and run-time) is generally still a function pointer in some table or structure.
[0061]The following code illustrates the state machine of an embodiment of the traversal component when implemented in software (here, the state is represented implicitly by the program counter):
TABLE-US-00001 void traverse(ThreadLocalCtx ctx, Cell *p, int direction, ObjFn obj_fn) { UInt32 sp = 0, idx = 0, idxe = direction; for (;;) { while (idx != idxe) { Cell *cellp = p + idx, cell = *cellp; idx += direction; UInt32 size = decode(ret, &ofs, &count); Cell ret = (*obj_fn)(cell, cellp, size); if (ret == SKIP) continue; if (ret == ABORT) return; if (count == 0) continue; if (idx != idxe) { ctx->stack[sp].p = p; ctx->stack[sp].idx = idx; ctx->stack[sp].idxe = idxe; sp++; } p = UNTAG(ret) + ofs; if (direction > 0) idxe = count, idx = 0; else idxe = -1, idx = count - 1; } if (sp == 0) return; sp--; p = ctx->stack[sp].p; idx = ctx->stack[sp].idx; idxe = ctx->stack[sp].idxe; } }
[0062]FIG. 3 illustrates a computer system according to a possible embodiment of the present invention. (301) represents one or more processors, (302) represents the I/O subsystem, including storage (e.g., flash memory, magnetic disk, optical storage, networked storage), (303) represents a data communications network (such as the Internet, a cluster interconnect, or a wireless network), (304) represents the main memory of the computer system comprising one or more memory devices (such as SRAM or DRAM).
[0063](305) represents the executor framework on the computer. It may be e.g. a virtual machine such as a Java virtual machine, Lisp runtime, web application framework, an operating system, or other framework for executing applications. The executor comprises a garbage collection means that needs to traverse an object graph in main memory at more than one place.
[0064](306) represents a configurable traversal component in the computer. It may be either a hardware component as part of an executor ASIC, or it may be a procedure implemented in machine executable program code stored in the computer's memory that causes it to traverse the object graph as directed by a configuration means.
[0065]The computer also comprises a number of configuration means. In this particular embodiment, (307) is a configuration component for performing young generation garbage collection (several different configuration components could be used in an actual young generation collector--for example, our implementation of multiobject garbage collection uses four different configuration components to implement young generation collection), (308) represents a configuration component for mature generation collection (our multiobject collector has three), (309) represents a configuration component for implementing popular object collection, (310) represents a configuration component for implementing serialization, and (311) represents a configuration component for implementing a distributed persistent storage system.
[0066]An aspect of the present invention is a machine comprising at least one configurable traversal component for traversing an object graph stored in one or more memory devices, the component comprising: [0067]a means for starting the traversal [0068]a means for inputting the initial cell [0069]an interface for signaling from the traversal component to at least one configuration component, the interface comprising: [0070]a means for passing the memory address of the cell currently being examined, and [0071]a means for indicating when the address is valid; [0072]an interface for signaling from at least one configuration component to the traversal component, the interface comprising: [0073]a means for indicating that traversing can continue by recursing into the current cell [0074]a means for indicating that traversing can continue by skipping the current cell [0075]a means for redirecting the traversal to a cell other than the one received from the traversal component; [0076]a means for reading information from the memory devices in which the object graph is stored; and [0077]a means for indicating when the traversal is complete.
[0078]The machine according to the present invention is preferably a computer or a mobile computing device, but can be any machine comprising a computing device, such as a robot, vehicle, or a complex computing system such as an information retrieval system, network server, or a clustered computer system comprising many computing nodes. The traversal component itself is implemented in a computing device within the machine; the computing device may be special hardware (such as an ASIC) and/or may use one or more general purpose processors.
[0079]Another aspect of the present invention is a method of traversing an object graph stored in one or more memory devices in a computing device, the method comprising: [0080]inputting the initial cell to be traversed to a traversal component [0081]initializing, by the traversal component, a range from the initial cell [0082]while unprocessed cells remain in the range, performing the following steps repeatedly by the traversal component: [0083]computing the address of the current cell to traverse and reading the current cell [0084]invoking a configuration component, and supplying the current cell and its address to the configuration component [0085]obtaining a new address to which traversal is to be redirected from the configuration component [0086]if the new address is a special value indicating that the current cell should not be traversed, continuing with the next cell [0087]pushing the current range on stack if it still contains unprocessed cells [0088]computing a new range from the new address returned by the configuration component; and [0089]while the stack is not empty, popping a range from the stack and repeating the above step.
[0090]The new address refers to the returned cell; it may be either a cell or an address or something from which the address can be computed.
[0091]A further aspect of the present invention is computer readable medium having a computer program embodied therein, the computer program operable to control a computing device to perform: [0092]inputting the initial cell to be traversed [0093]initializing a range from the initial cell [0094]while unprocessed cells remain in the range: [0095]computing the address of the current cell to traverse and reading the current cell [0096]invoking a configuration component, and supplying the current cell and its address to the configuration component [0097]obtaining a new address to which traversal is to be redirected from the configuration component [0098]if the new address is a special value indicating that the current cell should not be traversed, continuing with the next cell [0099]pushing the current range on stack if it still contains unprocessed cells [0100]computing a new range from the new address returned by the configuration component; and [0101]while the stack is not empty, popping a range from the stack and repeating the above step.
[0102]Many variations of the above described embodiments will be available to one skilled in the art without deviating from the essence of the invention as set out herein and in the claims. In particular, some operations could be reordered, combined, or interleaved, or executed in parallel, and many of the data structures could be implemented differently.
[0103]It is to be understood that the aspects and embodiments of the invention described herein may be used in any combination with each other. Several of the aspects and embodiments may be combined together to form a further embodiment of the invention. A method, a computer system, or a computer readable medium which is an aspect of the invention may comprise any number of the embodiments or elements of the invention described herein.
Patent applications by Tatu J. Ylonen, Espoo FI
Patent applications by TATU YLONEN OY LTD
Patent applications in class Control technique
Patent applications in all subclasses Control technique
User Contributions:
Comment about this patent or add new information about this topic:


text:
Popular jazz vocalist comes to Asheville
Published: Sunday, April 18, 2010 at 4:30 a.m.
Last Modified: Thursday, April 15, 2010 at 10:42 p.m.
ASHEVILLE -- Jazz vocalist Karrin Allyson and her quartet will perform on Sunday night at Asheville's Diana Wortham Theatre.
The concert, which starts at 7 p.m., is part of the Western North Carolina Jazz Society's 2010 season series.
Allyson is currently one of the busiest jazz vocalists on the domestic and international scene. After starting her musical journey studying classical piano, Allyson discovered jazz and jazz singing in college.
Over the years, Allyson has honed her singing, songwriting and piano skills, and has recorded 12 CDs, all on the Concord Record label.
This has led to three Grammy nominations in the Best Jazz Vocal Album category. Her latest nomination was in 2008 for her CD "Imagina: Songs of Brasil."
In a review of "Imagina: Songs of Brasil," Jazztimes magazine's Christopher Loudon ranked her album "among the best nods to Brazil ever crafted by an American singer."
A long way from her native Kansas, Allyson tours extensively. She plays in traditional jazz venues all over the world as well as at Carnegie Hall, Lincoln Center and the 92nd Street Y in New York City, where she now makes her home. She sings in French, Portuguese, Italian and Spanish, as well as English.
The songs she performs are drawn from a variety of genres: bossa nova, blues, bebop, standards and vocal performances of several instrumental jazz compositions.
The singer also has been a popular and welcomed guest of Garrison Keillor on National Public Radio's "A Prairie Home Companion," most recently from Tanglewood.
In addition, Allyson and her band have performed with symphony orchestras around the country, including the new Carnegie Hall concert series at Zankel Hall.
"Allyson coolly stakes her claim. She brings a timbre that is part ice and part grain ... incisive, original and emotionally convincing," says Gary Giddins, jazz critic and historian.
The Houston Press agrees wholeheartedly: "If there's a choir in heaven, someday the exquisite vocalist Karrin Allyson will lead it. She's such an otherworldly talent that the creator probably already has her on heavy rotation."
Tickets $25 are for members, $35 for non-members and $10 for students with ID under age 25.
For more information and to purchase tickets, visit www.wncjazzsociety.org.
Reader comments posted to this article may be published in our print edition. All rights reserved. This copyrighted material may not be re-published without permission. Links are encouraged.

subset: commoncrawl


text:
Former Commissioner Fay Vincent On the 'Golden Era' of Baseball
In his third book, "We Would Have Played for Nothing: Baseball Stars of the 1950s and 1960s Talk About the Game They Loved," former baseball commissioner Fay Vincent provides a look at a crucial period of American baseball history just as the national pastime is about to celebrate Opening Day on March 31.
Mr. Vincent, 69 years old, served as commissioner of Major League Baseball from September 1989 through September 1992. It was a short reign highlighted by an earthquake that briefly postponed the 1989 World Series and Mr. Vincent's decision to ban George Steinbrenner, owner of the New York Yankees, for life. The ban was later lifted.
Mr. Vincent says he gave up his commissioner role after a falling out with the league's owners. He has now put together an oral history focusing on 11 former stars, among them Harmon Killebrew, Whitey Ford, Duke Snider and Billy Williams. All provide lengthy discussions of careers spent back when there were fewer teams, salaries were modest and sports pages free of references to illegal performance-enhancing drugs. This was also a period when players had fewer rights.
Mr. Vincent, who is donating his proceeds from the book to the National Baseball Hall of Fame, was interviewed by The Wall Street Journal's Jeffrey A. Trachtenberg.
The Wall Street Journal: Was this a golden age for baseball?
Fay Vincent: In some sense. The difficulty with that description is the players were still chattel, serfs of the owners. The union didn't really come along until the 1970s. These guys weren't free agents, they couldn't bargain, they played for what they were given. Each era has its problems.
WSJ: Is the game tarnished now that this era's greatest slugger, Barry Bonds, has been indicted on perjury and obstruction of justice charges?
Mr. Vincent: The Barry Bonds case confuses historical comparisons. But the fact that an American is indicted for perjury won't hurt baseball.
WSJ: How would you describe owners from that period, a time when both the New York Giants and the Brooklyn Dodgers moved to California from New York?
Mr. Vincent: The owners in baseball are all schizophrenic. Part of them loves baseball, part of them loves making money. It's the money-making part that often takes precedence, and who can be surprised? The fans see the owners as in business to provide winning baseball. So there is a tension between the public that wants to win, and owners who want to make money. The Dodgers and Giants left New York for solid economic reasons. Any change that pivotal is sad. But the Dodgers move to Los Angeles was an act of genius. And if one team went, you needed another. It was inevitable baseball would go to the West Coast.
WSJ: Was Bobby Thomson's walk-off home run against Ralph Branca that ended the 1951 Dodgers-Giants playoff the greatest hit of that era?
Read a review of the book
Read a related article
Read an excerpt
Mr. Vincent: Yes, it was the famous "Shot Heard Round the World," and it came at a time when baseball was at its pinnacle in terms of public awareness. This was a spectacular moment in history. But there was a telescope in the manager's office in dead center field, and cheating was going on. The event was tarnished because Thomson knew a fastball was coming. To me, Ralph Branca was a much bigger man because he knew about the cheating soon afterwards but didn't say anything about it.
WSJ: Mr. Branca, one of the players interviewed for this book, calls the theft of signals an "immoral" act. Do you agree?
Mr. Vincent: I agree totally. A third base coach stealing signals from the catcher, that's fair. Putting a telescope in center field or putting a mirror in right field to shine sunshine into the eyes of the batter, those things are beyond normal competitiveness. It's the difference between sliding hard into second base and sliding out of the baseline to hurt another player. Some things are tolerably competitive, some things are intolerably wrong.
WSJ: Did the failure of the league to address that cheating create an atmosphere where players felt they could do anything necessary to win?
Mr. Vincent: There is a problem in baseball that continues to this day. We laugh at pitchers who scuff the ball, who put Vaseline or pine tar on the ball. But it's cheating. If one pitcher cheats and the other doesn't, we no longer have a game with rules. And if we don't have rules we don't have sport.
WSJ: You have included interviews with Billy Williams and Frank Robinson, two black players who were stars. What do you say to more recent players such as Dave Winfield, who worries that the number of black players is shrinking dramatically?
Mr. Vincent: I agree with Dave Winfield. We all know the problem has been accumulating for years. It's complicated. First, basketball and football at the collegiate level are much more popular than baseball. A young black kid has a much better chance of emerging from his circumstances by playing football or basketball. College baseball is a very limited field.
Second, the popularity of those two sports has become extraordinary. And they are easier games. A good athlete can play basketball and football at the college level by working hard and having speed and natural abilities. Baseball involves the most difficult feat in sports: hitting a round ball with a cylindrical bat and making it go in a line drive. Most athletes find it beyond their ability.
Also, baseball hasn't devoted the necessary resources to working in black communities to encourage those kids to play baseball. The talent drain is an enormous problem.
Write to Jeffrey A. Trachtenberg at email@example.com


text:
- Nation
3 more Washington mudslide victims identified3 more Washington mudslide victims identifiedAll 39 victims recovered have been identified.
- Life
Home-made backpacking food healthier, cheaperHome-made backpacking food healthier, cheaperEVERETT, WASH. – Carry Porter doesn't think much of the dehydrated backpacking foods you can buy off the shelf. They...
- News
Death toll in Washington mudslide rises to 37Death toll in Washington mudslide rises to 37EVERETT, Wash. – One more victim has been recovered from the mudslide that hit the town of Oso, raising the death to...
- Courts
Man blames 'state of duh' for killing mom, girlMan blames 'state of duh' for killing mom, girlA jury will determine if Brian Everett killed a mother and daughter in self-defense or a brutal rage.
- Crime
Man shot in foot in KnollwoodMan shot in foot in Knollwood8-year-old said two young males shot him in the leg in the unit block of Everett Ave.
- OH courts
'You'll hear him begging them not to die''You'll hear him begging them not to die'East Price Hill man on trial, accused of stabbing a mother and daughter to death.
- Nation
Death toll in Washington mudslide rises to 33Death toll in Washington mudslide rises to 33The number of missing now stands at 12.
- News
Police blotter for April 6Police blotter for April 6Friday, March 28: Lingling Zheng, 19, 200 block of N. Martin Jischke Drive, West Lafayette, Minor in tavern and false...
- News
Mystery emerges in effort to ID mudslide remainsMystery emerges in effort to ID mudslide remainsOne of the 30 bodies found does not fit with descriptions on the missing persons list
- Nation
Grim duty: Team works nonstop to ID remainsGrim duty: Team works nonstop to ID remainsMembers of the medical examiner's office in a small Washington county devastated by a mudslide work around the clock to identify bodies. Of the 29 sets of remains delivered so far just one is still a mystery.
- Columnists
First grandchild is perfect babyFirst grandchild is perfect baby Some of you who know Jane and me know that at our ripe old age we became grandparents on Feb. 19 — our first and onl...
- Preps
Vandy commits have big night on future home fieldVandy commits have big night on future home fieldVanderbilt baseball commitments Donny Everett and A.J. Franklin made themselves at home at their future home field.
- Preps
Everett shines at future college fieldEverett shines at future college fieldEverett shines at future college field
- Nation Now
108 missing, unaccounted for in Wash. mudslide108 missing, unaccounted for in Wash. mudslideEight people are now confirmed dead after a massive landslide slammed into homes Saturday near Oso, Wash.
- Teachable Moments
Teachable Moments: Vannevar Bush regarded science as a saviorTeachable Moments: Vannevar Bush regarded science as a saviorOn Mar. 11, 1890, Vannevar Bush was born in Everett, Mass. He shepherded the scientific community during World War II to help bring victory, and pushed for expanded government investment in research.
- Politics
Iowa Politics Insider: Branstad's D.C. visits are a family affairIowa Politics Insider: Branstad's D.C. visits are a family affairWhen you've been governor for 20 years, visiting the White House and meeting the president each year gets, well, mayb...
- News
Man in 2013 shootout convicted of lesser chargeMan in 2013 shootout convicted of lesser chargeJerry Ellington, 22, was convicted of second-degree criminal possession of a weapon.
Cops: No witnesses ID'd Nkemdiches, others in 2013 brawlCops: No witnesses ID'd Nkemdiches, others in 2013 brawlOXFORD – No arrest was ever made in a year-old fight at an Ole Miss fraternity house because no witness could ever i...
Nkemdiches, 5 others being sued for $2M after allegedly beating up manNkemdiches, 5 others being sued for $2M after allegedly beating up manOXFORD – The bad news is piling up for Ole Miss football.
Ole Miss players being sued for $2M in alleged brawlOle Miss players being sued for $2M in alleged brawlThe plaintiff says Denzel Nkemdiche, Robert Nkemdiche and five others beat him unconscious.
- Local
St. Louis loses out on bid to build Boeing 777x aircraftSt. Louis loses out on bid to build Boeing 777x aircraftBoeing says that it has picked Everett, Wash., as the site to build wings for its new 777x aircraft.
- News
Report: Boeing to build 777X wing in EverettReport: Boeing to build 777X wing in EverettSEATTLE – Boeing has decided that Everett will be the place where the wing of the 777X airplane will be built, The S...
- Local
Duke Energy Executive Apologizes For Coal Ash SpillDuke Energy Executive Apologizes For Coal Ash SpillA Duke Energy executive is apologizing for the company's massive coal ash spill that turned the Dan River cloudy for miles.
- News
Works of loveWorks of loveAnnette Everett has showed her work at the Sears Dixie Invitational Art Show and Sale before, but she's particularly ...
- Preps
Everett, Sheffield both ranked in top 25Everett, Sheffield both ranked in top 25Clarksville pitcher Donnie Everett and Tullahoma pitcher Justus Sheffield are both rated in the top 25 of the Perfect...
- News
Sears art show celebrates 27th yearSears art show celebrates 27th yearST. GEORGE – The annual Sears Dixie Invitational Art Show and Sale, recognized as one of the biggest art events in t...
- Missouri
Missouri fugitive apparently died in WashingtonMissouri fugitive apparently died in WashingtonEVERETT, Wash. (AP) — Authorities believe they have finally caught up with Dennis "Slick" Lilly, a fugitive who slipp...
- Purdue
Like father, like son: Purdue's Kendall Stephens a natural from 3-point rangeLike father, like son: Purdue's Kendall Stephens a natural from 3-point rangeKendall Stephens first exhibited his shooting prowess without stepping outside his family's home.
- News
DeathsDeathsHODGE – Lewis Everett Cousins Jr., a retired Jackson Parish sheriff's deputy, died Thursday. Services are 2 p.m. Sat...
- News
JMU hires OSU assistant Withers as head football coachJMU hires OSU assistant Withers as head football coachHARRISONBURG – James Madison has hired Ohio State assistant coach Everett Withers as its football coach.
- News
Turkey timeTurkey timeSt. Timothy Preschool student Everett Kline smiles with his Thanksgiving turkey.
- Local
Macon woman sentenced in identity theft schemeMacon woman sentenced in identity theft schemeIn 2012, Everett was caught in a sting operation and admitted to obtaining personal information from 35 people benefiting from services at the Salvation Army.
- Theater
Delaware theater offerings include Tony nominee Rob McClureDelaware theater offerings include Tony nominee Rob McClureEverybody who sees "The Story of My Life" at the Delaware Theatre Company will be moved to reach out to a friend he hasn't been in touch with lately, says actor Rob McClure.
- News
A family's journey to escape violence in IndianapolisA family's journey to escape violence in IndianapolisEight-year-old Damarcus Cole sees a woman out his kitchen window, struggling to open an apartment door, screaming....
Vanderbilt students hold rally to support rape victimsVanderbilt students hold rally to support rape victimsThe students have a list of demands that ask for campus policy changes.
- Sports
Comfort zone: Vault's return to QB sparks Block offenseComfort zone: Vault's return to QB sparks Block offenseJONESVILLE – When Block coach Benny Vault decided to move his son, Trevor, back to quarterback, at the start of dist...
- Weird News
Man survives being crushed by massive fallen treeMan survives being crushed by massive fallen treeEVERETT, Washington (KING) -- A Washington state man remains in the hospital after a tree fell on the roof of his car during a Saturday storm.
- Nation
71-year-old set for execution in Arizona71-year-old set for execution in ArizonaEdward Schad was convicted of killing a Brisbee, Ariz., man in 1978.
- High School
Monday's boys high school resultsMonday's boys high school resultsSpencerport defeated Churchville-Chili in five sets in boys volleyball.


text:
Great mask !!!!!
I have been using this mask for the last 5 years. If I have a big event or important meeting, I MUST use this mask that day. I wash my face and apply this mask after getting out of the shower. The cooling feeling energizes me and prepares the skin well for applying makeup. I leave the mask on until it's dry (about 10 min) and then rinse off and apply moisturizer. It plumps my skin so beautifully that EVERY TIME I USE IT, people compliment me on my skin! Literally, every time. My skin looks more supple, younger and fresh. I use expensive creams -- even $250 Creme de la Mer - but this simple basic is a STAPLE in my cabinet. I couldn't go without it! I'm so happy to see it sold here on Amazon, as you can no longer find it in drugstores. I hope Neutrogena will manufacture this product again -- as I will do anything to find it and use it for the rest of my life. I can't speak more highly of this fabulous, refreshing, energizing mask.
Was this review helpful to you?YESNO


text:
- Destinations
- Hotels
- Vacations
- Tours & Activities
- Special Offers
- Cruise Vacations
Lower category booked, guests to be upgraded upon arrival. Subject to availability. Additional persons sharing the accommodation will receive only breakfast throughout the stay. Additional nights beyond 3 are on bed and breakfast only for all room occupants.
Save up to Value Added
Travel from 09/01/2013 through 10/31/2013
Blackout Dates: May Apply
Minimum Night Stay: 3 Nights
Book This Now
Andronis Luxury Suites
Hotel Ratings
Insider Tip
- The hotel is located in Oia, a picturesque village with narrow streets and blue domed buildings. Famous for its stunning sunsets, Oia also offers art galleries, craft shops, restaurants, and coffee shops located just a short walk from the hotel.
Hotel Overview
What to Expect:
- This intimate boutique hotel comprises traditional whitewashed buildings set on a seaside cliff. The hotel's interior design blends classic Cycladic architecture with contemporary minimalist design. Ideal for honeymooners and celebrating couples, this Santorini hotel has an elegant and serene ambiance. Children under 13 are not permitted.
Amenity Highlights:
- After enjoying complimentary breakfast, guests can spend the day lounging by the infinity pool overlooking the sea. The spa offers facials, massages, and body treatments (surcharge), and a small fitness room includes cardio machines and free weights. Set on the edge of a cliff, the gourmet restaurant serves Mediterranean cuisine prepared with organic ingredients plus an extensive wine menu.
Santorini, 84702
- Santorini
Airport:Santorini Airport JTR
Andronis Luxury Suites comprises 17 suites located within two buildings. Decorated in a traditional Cycladic style, all suites feature furnished balconies with sea views. Features include spa tubs, pillow menus, bathrobes and slippers, and minibars stocked with organic products. Rooms are also equipped with complimentary wireless Internet access, satellite TVs, CD players, and direct-dial phones.
Room Amenities:
- Air conditioning
- Balcony
- Bathrobes
- Cable/satellite TV
- CD player
- Desk
- Direct-dial phone
- DVD player
- Electronic/magnetic keys
- Extra towels/bedding in room
- Fax machine
- Hair dryer
- Handheld shower
- Housekeeping (daily)
- In-room safe (accommodates laptop)
- Internet access - complimentary
- Iron/ironing board (on request)
- Makeup mirror
- Massage - available in room
- Minibar
- Patio
- Premium bedding
- Sewing kit
- Slippers
- Smoking rooms
- Sofa bed
- Trouser press
- Turndown service
- Umbrella
- Video-game console
- Wake-up calls
- Welcome amenities
- Window opens
Property Amenities
Set on a seaside cliff overlooking the caldera basin, this boutique Santorini hotel is located in the village of Oia, 10 km (6 mi) from the main town of Fira. Surrounded by sun beds and umbrellas, the infinity pool offers panoramic sea views. The spa offers massages, facials, and body treatments (surcharge), and a small fitness room offers cardio machines and free weights. A complimentary cooked breakfast is available every morning, and the restaurant serves fresh organic cuisine paired with fine wines.
Amenities at this Greek Isles hotel include a concierge desk, business services, and 24-hour room service. Butler service is available for a surcharge.
The amenities listed below are available on site; fees may apply:
- 24-hour front desk
- Air-conditioned public areas
- Airport transportation (surcharge)
- ATM/banking
- Babysitting/Childcare
- Banquet facilities
- Bar/lounge
- Beauty services
- Business services
- Complimentary breakfast
- Computer rental
- Concierge desk
- Concierge services
- Doorman/doorwoman
- Dry cleaning service
- Event catering
- Express check-in/check-out
- Internet access in public areas - complimentary
- Internet access in public areas - wireless
- Laundry facilities
- Library
- Limo or Town Car service available
- Marina on site
- Massage - treatment room(s)
- Medical assistance available
- Multilingual staff
- Parking (free)
- Parking (secure)
- Porter/bellhop
- Restaurant(s) in hotel
- Room service (24 hours)
- Safe-deposit box - front desk
- Secretarial services
- Shoe shine
- Shopping on site
- Spa services on site
- Spa tub
- Swimming pool - outdoor
- Video library
- Wedding services
Children under 13 are not permitted at the property.
Extra person charges may apply and vary depending on hotel policy.
Rollaway beds and cribs (infant beds) may be available and should be requested at the time of booking; fees may apply.
Photo identification and credit card or cash deposit are required at check-in for incidental charges.
Special requests are subject to availability upon check-in, cannot be guaranteed, and may incur additional charges.
- Pets not allowed
Check-in time:
Check-out time:
A complimentary breakfast is provided each morning.
RestaurantGourmet restaurant set on the edge of a cliff. Serves Mediterranean cuisine prepared with organic ingredients. Also features an extensive wine list.
This Santorini hotel features a small fitness room and an outdoor pool surrounded by sun beds and umbrellas.
A beach is located 5 km (3 mi) from the hotel. Nearby activities include fishing, horse riding, sailing, and scuba diving.
The recreational activities listed below are available either on site or near the hotel; fees may apply.
- Aerobics
- Fishing
- Horse riding/rental
- Motor boating
- Sailing
- Scooter/Moped Rentals
- Scuba diving
- Swimming
- Tennis
- Volleyball
Special Offer Details
Manager's Specials3 nights from $1259 per person
Save up to Value Added
What's Included?
- Grecian Myths and Flavors with Classic Romance 2013
- Daily a la carte room service breakfast
- One lunch daily complimentary for two people (set menu), excluding beverages
- Welcome champagne drink
- Welcome gift in room upon arrival
- One category room upgrade (subject to availability)
- 100 Euros spa credit to be used in the hotel spa
Available Room Types:All
Important Dates:Book from 08/26/2013 through 09/01/2013
Travel from 09/01/2013 through 10/31/2013
Blackout Dates: May Apply
Minimum Night Stay: 3 Nights
Offers valid on new bookings only. Prices shown are per-person, land only based upon double occupancy, except if expressly noted otherwise. Offers are subject to availability at time of booking and may be changed or discontinued at any time without notice. Blackout dates, minimum night stays, minimum stay requirements on air, seasonal surcharges, resort fees (if any), and other restrictions may also apply. Individual offers may require purchase of Travel Smart Plan or travel waiver. Offers are not valid for Group Travel. Some booking and travel dates may vary. Other promotions and departure dates available which may result in a different rate and/or hotel inclusion. Customer is responsible for hotel taxes and fees on the free night offers, where applicable. For those properties where Classic Vacations has access to dynamic pricing rates, those rates will likely fluctuate from time to time based on market conditions and other factors beyond Classic Vacations control. Classic Vacations CST# 2079429-20.


text:
|3rd Floor Symphony Building Range Hill Road, Pune, Maharashtra, 020 http://www.rttec.com Interior Decorators
- Evaluations:
7 times viewed 43 times listed
We are also Authorized Distributor for Bonito Surfaces(a Pune Based company). We are cooperating with some world-famous bearing and other companies, so we are in a ... more
S No 321/1, Shanti Nagar Society, No.4, Munot Bhavan, Opp Union Bank Of India ... Bonito Surfaces PVT LTD more
The tooth surfaces judged as having caries by at least one examiner or one diagnostic ... Bader JD, Shugars DA, Bonito AJ. A systematic review of the performance of … more
Surfaces with developmental defects such as enamel hyperplasia, fluorosis, tooth wear ... Bader JD, Shugars DA, Bonito AJ. Systematic review of selected dental caries ... more
So wash all surfaces thoroughly and wipe them dry. Much more care should be ... STORY BONITO CHHABRIA: Source July 2001 Back more
Bonito Buildworld Pvt. Ltd. ... Gemstone Slab & Quartz Surfaces Counter Top: Posted on: 01 March 2010: We are providing ... more
Casa Bonito Luxury Villas are located in the picturesque state of Goa in Assagoa ... Roll edge work surfaces with complementary tiled splash backs. One and a half bowl ... more
Bonito Buildworld Pvt. Ltd. ... Gemstone Slab, Sink & Tiles & Quartz surfaces: Posted on: 18 March 2011: Miracle Marble ... more
HS: Description: 01011010: CAVALOS REPRODUTORES DE RACA PURA: 01011090: ANIMAIS ESPEC.ASININA/MUAR,REPRODUT.RACA PURA: 01011100: Pure-bred … more
It is well known that Nike Air Jordans have various and excellent styles, which are professional basketball sneakers. Nowdays, there are still a great number of fans ... more
Campus Ambassadors Contact Us ... more
Alcheringa is the annual cultural festival of IIT Guwahati, scheduled from 30th January to 2nd February 2014. It is largest college cultural festival in North-East India more
At the outset, we Khytirealities would like to introduce ourselves as a well admired corporate house and an extremely reputed brand name in residential and commercial ... more
Description- India Fest 2014 events of music, dance, art, sports, fashion, game, Bollywood events presented by channel V, Nokia and Star India at Goa. more
Tuna - Information on tuna fish, canned tuna fish, frozen tuna, health and nutritional aspects of tuna and also find suppliers and exporters of tuna fish from India ... more
The Giant trevally, (Caranx ignobilis) Is a popular game fish with anglers throughout the world. It belongs to the family of jacks and is one of my favorite quarries ... more
Get the latest news about sizzling parties happening in your city. Try out a new cocktail recipe and impress your party pals. more
Fish - Read complete information on fish species, fish cooking techniques, fresh fish, freshwater fish, saltwater fish and also find global suppliers, exporters of fish more
Visit the online product catalog of LIBRA INTERNATIONAL LTD. - Leading exporter, manufacturer & supplier of foam mattress & coir mattress from India more
The Bay View Restaurant is a sea food lover?s paradise. With exotic view of Bay of Bengal, the barbeque meal on the beach cooked with Bay Spice - local peppers ... more


text:
Bragg Creek and Area Chamber of Commerce
Bistro Rouge29.01km
French inspired menu served in casual setting. House-made charcuterie and mouth-watering fresh ground Angus burger to chateaubriand with béarnaise and the...
Grey Eagle Casino & Bingo29.56km
The Grey Eagle Casino and Bingo puts gaming, dining, and bingo all in one place – with the mountains as a stunning backdrop.
Grey Eagle Resort & Casino29.56km
Exceptional dining options, activities and beautiful accommodations await you!
Little Chief Restaurant at Grey Eagle Resort & Casino29.56km
Breakfast, lunch and dinner dining. Family friendly.
Alberta Motor Association30km
Auto club. Membership 865,000. Worldwide affiliation. Maps. Reservations. Emergency road service. Driver education. Insurance and travel agency. Six Calgary...
Mount Royal University Residence Services30.43km
Mount Royal University offers affordable hotel-style accommodations with the recreational facilities and casual vibe of a campus setting.
Mount Royal Conservatory30.52km
Mount Royal Conservatory holds public performances including music, theatre, dance, and more.
Calgary Fiddlers Association30.68km
The Calgary Fiddlers provide year-round entertainment for special events, conventions, conferences and banquets.
Red Carpet Inn & Suites30.82km
Guest rooms with complimentary Wi-Fi and parking for guests. Walk to recreational facilities, restaurants, Bow River, Shouldice Park and pool. Foothills...
Foothills Brass30.83km
A dynamic, energetic and entertaining brass ensemble; that has been performing in communities across Canada and the US since its inception in 1981. For your...
Traveller's Toolkit
- Calgary Maps
Calgary Weather
Current Conditions:
Extended Forecast:
Visitor Guide
View the Tourism Calgary Visitor's Guide online or download a version to your computerView Calgary Guides


text:
Possible Duplicate:
Zero to zero power
Sorry for asking this simple question, but googling this question yields conflicting answers.
Some say it's indeterminate, other's say it's $1$.
Sorry for asking this simple question, but googling this question yields conflicting answers.
marked as duplicate by Clive Newstead, amWhy, Jonas Meyer, rschwieb, user1551 Jan 6 '13 at 20:04
This question was marked as an exact duplicate of an existing question.
The short answer: 'yes'. The slightly longer answer: $0^0$ has different meanings in different contexts, depending on whether the power represents the analytical power (defined either through continuation of the function $x^y$ from rational values of $y$ to real values) or the combinatorial power (where $A^B$ is defined as the number of maps from the set $A$ to the set $B$). The 'analytical' $0^0$ is considered undefined because the double-limit $\displaystyle\lim_{x,y\to 0+}x^y$ will yield different values (in fact, it can yield all possible values) depending on what path is taken towards the origin. By contrast, the combinatorial power $0^0$ is taken to be $1$; there is considered to be one map from the empty set to itself, the identity map. This convention substantially simplifies formulas of a combinatorial nature; for instance, the binomial identity $(1+x)^n = x^0+nx^1+{n \choose 2}x^2+\ldots$.


text:
I am after 10 hours of searching the method to make it work, but I've lost hope for now and I am asking for help.
I'm running 3.3.1 version on home.pl (I got the tmp folder, PHP 5.3.x, no apache), v.5 java, new flash, Firefox Nightly and Chrome, uploading by FileZilla in passive mode, win 7 x64, ~2400KB/s down / ~240KB/s up.
No problems with connection to database (I just do not know, if "localhost" or "sql.tpralat(...)" should I use in settings - but both works fine).
I have fresh install - I uninstalled all ad-ons, recently installed that WP Super Cache which gave me some problems in debug mode - resolved with changing line 526 in wp-cache-phase1.php. I've got no problems with wp-config.php, just added:
define('WP_MEMORY_LIMIT', '128M'); // changed from MB
define('WP_DEBUG', true);
Permissions are set to 755 and 640 to .htacess and wp-config.php
I first had problems just after install - but I have change sth (perms, mem limit, added "?>" on the end of wp-config with notepad++) and admin panel works. Even themes changes. But widgets and upload panel do not. When I'm dragging widget it goes blank screen - and when I'm dragging photo in post creation mode - going blank too.
I can see for a brief moment the widget - like TEXT one on default theme - its "rolling" and just puff, white screen and Nightly is "thinking", trying to transfer data from home.hit.gemius.pl


text:
Babies that need to be held
Be who you are and say what you feel, because those who mind don't matter and those who matter won't mind.
--- DS - April 2010 ---
--- DD - January 2013 ---
--- DD - July 2015 ---
--- DS - April 2010 ---
--- DD - January 2013 ---
--- DD - July 2015 ---
Jennifer & Andrew : Married The love of my life! Febuary 4th 2012
Mackynize Elisabeth our 1st due 12-17
I'd recommend the Rock n Play. It was the only thing our LO would sleep in other than our arms when he first came home. Best money we ever spent!
You're not lying. You're just pre-telling the truth. #bitchchippedus
let's do some math.
anywhere between 9 and 10 months in utero, being held and rocked and comforted EVERY DAY.
28 days later, you expect him to be willing to not be held?
it takes 30 days to establish a new habit. Cut the kids some slack.
Buy a carrier if you don't want to hold him.
Come visit me on Etsy!
Dara- proud momma to 2 boys, 1 girl, and 1 on the way
My baby didn't like carriers - either more traditional or wrap varieties - swings, her bouncer, pack n play, bassinet - anything. She would stay on either me or DH all day (which means days of doing nothing but sitting on the couch), and sleep in our bed at night.
She's 10 weeks old now, and the past 3 nights has finally slept in her bassinet. Yesterday we still held her much of the day, but there were four or five periods of time where she would be entertained by other things so we could do something.
She just decided one day to do both, I didn't help her along. Just wait it out, it doesn't last forever =)
A talkative nutcracker is simply hungry for nuts.
Please help if you can: http://www.gofundme.com/b3uhp4
Be who you are and say what you feel, because those who mind don't matter and those who matter won't mind.
J&M Married 08/22/10 * Baby Girl arrived 12/3/12
Learn more
Look how far your child has come.
Review your child's growth milestones.
Read about 3 years 6 months : Week 2.
Your growing child
Your 3 1/2-year-old: Writing skills
Your 3 1/2-year-old: Tantrum tamers
Your 3 1/2-year-old: Your little mimic
Your 3 1/2-year-old: Preschool-proofing
Your 3 1/2-year-old: Grammar quirks
Learn more
What's next for your growing child?
Get a glimpse of what's to come.
Read about 3 years 8 months.


text:
Im trying to add some text below the Add to cart area with WooCommerce, WooTique theme. I found a page of hooks but not sure how to use it. The code of the button area is
<form action="/home/dfsds22/?add-to-cart=42" class="cart" method="post" enctype="multipart/form-data">

<input type="button" value="-" id="minus1" class="minus"><input name="quantity" data-min="1" data-max="0" value="1" size="4" title="Qty" class="input-text qty text" maxlength="12"><input type="button" value="+" id="add1" class="plus">

<button type="submit" class="button alt">Add to cart</button>
I found hooks here but i dont know what to do with it
line 65 i believe would be what i use. how do i assemble it to display some text below there?
i cannot provide a link to my site at the moment


text: Inhibitex Content on this page requires a newer version of Adobe Flash Player. Inhibitex ( INHX) is a biopharmaceutical company focused on the development of differentiated anti-infective products to prevent or treat serious infections. This stock is trading up 8.5% at $11.33 in recent trading. Today's Volume: 2,977,000 Average Volume: 2,627,890 Volume % Change: 115% This stock is soaring today after Canaccord said it would be aggressive buyers of INHX due to the overreaction in shares following Pharmasset's ( VRUS) PSI-938 clinical developments. Canaccord rated the stock a buy with a $22 price target. From a technical standpoint, INHX is starting to trend back above its gap down day high of $10.45 on heavy volume today. Traders should now watch for a sustained high-volume move and close above $10.45 to signal that this stock wants to continue to fill the gap back towards $14. Keep in mind that this stock just bounced big off its pre-market low of near $5 from that huge gap down day last week. That's an over 100% run now for INHX, so profit-taking could easily hit this stock at any moment. Inhibitex shows up on a list of 13 Biotech Stocks Bought and Sold by Hedge Funds in the most recently reported quarter and is one of Five Drug Stocks Winners of 2011. Prev 6 of 9 Next


text:
Discover a selection of top forums rune aosh on the internet. Come to share your passion on forums rune aosh and meet other fans of rune aosh. Then, why don't you create your own forum of rune aosh ?
Live Runescape Classic server. free to play
classickbd, runescape, classic, rsclassic, rsckbd, #rune, scape, quest, guide, skill, mining, smithing, runecrafting, attack, defense, strength, hits, ranged, magic, prayer, cooking, woodcut


text:
I would LOVE to be able to use a tag to match the %scategory% tag used by this plugin: http://wordpress.org/extend/plugins/scategory-permalink/
Is there any way to do that?
What his plugin does is make my post's permalink category be one that is selected using his plugin.
The problem with your %post_category% tag is that is only picks the first category...which is not necessarily the category I want an image in.
Any chance you could talk to that author and see if you can incorporate his %scategory% tag into your tag list?


text:
Calvin KleinWoven PJ Pant
A timeless classic, the Calvin Klein Woven Roll Up PJ Pant is a wardrobe essential. Made from 100% cotton, this PJ pant features a signature branded waistband and a cute button fly.
Product code: CNK-S5115E-KS5
Need some help?
Call 1-866-751-2589 or chat to an advisor onlineCHAT NOW


text:
Short URL: http://lgbtweekly.com/?p=26776
Name (required)
Mail (will not be published) (required)
Rossini's La Cenerentola (Cinderella) opens San Diego Opera's Mainstage Season Oct. 22
Federal Court strikes down North Carolina's voter ID law
HRC president tears apart Trump's 'pro-gay' claim in DNC speech (VIDEO)
San Diego Police Officer fatally shot, another wounded; suspect in custody
Latino Victory Fund and Latino Decisions release 12 battleground state Latino poll
Sarah McBride becomes the first transgender person to speak at a DNC (VIDEO)
Logo launches LGBT-focused 2016 election series with Chelsea Clinton interview
The City: Top to Bottom
President Barack Obama delivers a blistering speech at the DNC (VIDEO)
Gay male photography exhibit to open at the Museum of Photographic Arts Aug. 11
Read more
© 2016
LGBT Weekly. All Rights Reserved.
Log in BluSkye Group


text:
Janine Florio graduated from MaryMount Manhattan College in May 2012 with a B.A. in Graphic Design. She also holds an A.A.S degree in Fashion Buying and Merchandising from Nassau Community College.
Janine has completed internships at Teen Vogue Magazine in the marketing and promotions department, Nylon Magazine in the Fashion Closet, and Paul Stuart in the visual display department where she worked along side Tom Beebe, former creative director of DNR magazine.
Janine feels art is notable in the fashion marketing industry. She is enthusiastic about tapping into the potential of bringing together her knowledge of fashion, art and business.


text:
Nicholl asked: How do I get super glue off eye glasses? I tried to fix my glasses with super glue, but I got it on the lens. My lenses aren't glass, they are plastic, so I can't use nail varnish remover because the acetone will affect the plastic. It's cheap super glue. Please help.
Super glue hardens to a form of plastic, so removing it from plastic surfaces can be a challenge. There are ways that this sticky substance can be removed that do not require the use of acetone. Of course, if the lenses are glass, it is fine to use acetone. The information is easy to follow and readily available in our guide How to Remove Super Glue from Plastic and Vinyl. For plastic lenses and frames, use the method given for plastics. For glass lenses and metal frames, use the method provided for vinyl.


text:
I know this can be done with css but without excerpt, but i want to keep the grid selection and the excerpt.
I know this can be done with css but without excerpt, but i want to keep the grid selection and the excerpt.
You can force list view to the the default with a little jQuery;
That might mess up the active styling on the toggle buttons though so that might need attention too.
Marking as resolved
This is because I have no idea what I'm doing, but where do I add the jQuery?
Nevermind I figured it out.
How did you get this to work?
Hey tigray, this will work if you paste the code at the end of jquery.gridlistview.min.js ...
I'm using this and a CSS display:none; on the toggle switches - my client wanted a list view (without a toggle, go figure) and this was the only way I could achieve it.
Hi Coinmaster,
Sorry but I am a bit thick and I keep getting a fatal error whe I try to paste the code...could you help me out and let me know exactly where to paste it..cheers
In your plugins directory, you'll have the Woocommerce Grid-List Toggle Plugin - go there, and open the following file:
assets > js > jquery.gridlistview.min.js
Put your cursor right at the end of the code there and paste in the code example from above. Save, upload and reload your page.
Good luck!
Much appreciated works perfectly!!!
I'd like to eliminate my the toggle option also. (i just want list view only on my site) can you explain how you "use this [with] a CSS display:none on the toggle switches"?
thanks in advance
Thank you jameskoster for the plugin and coinmaster for the details! Works perfectly!
democritus - you can hide the toggle switches by adding this to your custom.css
#gridlist-toggle {
display: none;
that worked, thank you. do i need to add that every time I update wordpress?
@democritus, you'll probably (if @jameskoster won't add this tweak to the plugin) need it only after upgrading the WooCommerce Grid / List toggle plugin. WP core or other plugins don't affect each other.
Great, and simple to use plugin, thank you.
I've set up list view as the default, but is it possible to swap over the toggle button, as the grid view button is still showing as active when the list view first shows up.
It's MUCH simpler than that to have list be default. In the plugin editor on the PHP file there is this:
// Default options
add_option( 'wc_glt_default', 'grid' );
Just change to list instead of grid and you're done.
I don't see that line in there for some reason
Thanks tlgray, just what I needed! I needed to change the '#' at the start of the css code you suggested to a '.' for it to work in my case (maybe that's obvious though?).
Here's the css to remove the toggle buttons that worked for me - I added this to my custom css file:
/*Remove grid-list view toggle buttons*/ .gridlist-toggle { display: none; }
Any help would greatly be appreciated.
I recently installed list/grid view plug-in.
(using woocommerce)
1. My products are being displayed twice, once at the top and again on the bottom where that list grid toggle button is.
2. When in grid view. All my items are being displayed in a single column.
I am very familiar with css. I just can't source the problem.
Site is http://www.willmetric.com/wbz-hp
Any help is great appreciated
This topic has been closed to new replies.


text:
BBB Request a Quote
Charlottesville VA 22901
Auto Dealers - New Cars
BBB Accredited since 1986 for 30 years of continuous accreditation.
About BBB Request a Quote
Use this service to obtain estimates, proposals or general information from BBB Accredited Businesses - Carter Myers Automotives. Your request will be sent to Carter Myers Automotives via e-mail. You will be required to provide your contact information, and then the Accredited Businesses will contact you directly.
For example, you enter in your contact information along with the requested product or service - like "Paint my house," "Landscape front and back yards," "Buy a new computer," "Build an addition to my house," "Buy a car" "Obtain a Mortgage" etc. An email is then sent to Carter Myers Automotives. They will contact you directly to provide you with information relative to your request... One stop shopping with businesses you can trust, BBB Accredited Businesses!
Please refer to our Privacy Policy. The personal information you provide will be used only for the purposes for which you have given permission.


text:
I'm having problems getting the Fancy Gallery plugin to work.
When I activate the plugin it fails to work or even display a setting menu in the admin dashboard.
I have PHP5 with safe mode off.
I think it may be because jquery gets called twice (line 29 and 51) but if I remove line 29 the sliding on my site stops working, if I remove line 51 the dashboard menu stops working.
Any help would be amazing! Thanks