sys.sa


Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
 
------------------------->  GNU Sather - sourcefile  <-------------------------
-- Copyright (C) 2000 by K Hopper, University of Waikato, New Zealand        --
-- This file is part of the GNU Sather library. It is free software; you may --
-- redistribute  and/or modify it under the terms of the GNU Library General --
-- Public  License (LGPL)  as published  by the  Free  Software  Foundation; --
-- either version 2 of the license, or (at your option) any later version.   --
-- This  library  is distributed  in the  hope that it will  be  useful, but --
-- WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See Doc/LGPL for more details.       --
-- The license text is also available from:  Free Software Foundation, Inc., --
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA                     --
-------------->  Please email comments to <bug-sather@gnu.org>  <--------------


class SYS

class SYS is -- This class contains data/routines/iters which are related to the -- Sather compiler implementation system. -- Development History -- ------------------- -- Date Who By Detail -- ---- ------ ------ -- 22 May 2005 kdm is_little_endian -- Version 1.2 Oct 98. Copyright K Hopper, U of Waikato -- 14 Oct 98 kh Removed IEEE routines to partial class -- 5 Mar 97 kh Added rune name and int/card changes. -- 7 Nov 96 kh Original from Sather distribution -- include IEEE_SYS ; -- Optional inclusion! is_little_endian: BOOL is -- For system definitions: -- system/FORBID, system/CONFIG and lib/Required/SatherRT/config/sys. -- For C definitions: -- lib/Required/SatherRT/runtime.h and lib/Required/SatherRT/runtime.c. builtin SYS_IS_LITTLE_ENDIAN; end; destroy(obj : $OB) pre ~void(obj) post true is -- This very special built-in routine is for use on those rare -- occasions when explicit object destruction is appropriate. Built-in to -- this implementation. builtin SYS_DESTROY end ; is_eq(ob1,ob2 : $OB) : BOOL is -- This predicate returns true if and only if ob1 and ob2 are the same -- object, otherwise false. return ob_eq(ob1,ob2) end ; is_lt(ob1,ob2 : $OB) : BOOL is -- This predicate returns true if and only if ob1 is less than ob2, -- otherwise false. return id(ob1) < id(ob2) end ; hash(ob1 : $OB) : CARD is -- This routine returns the implementation defined identity as a numeric -- value which is then hashed. return id(ob1).hash end ; id(obj : $OB) : CARD pre ~void(obj) is -- This routine returns the implementation defined identity for the -- object indicated. Built-in to this implementation. builtin SYS_ID end ; tp(obj : $OB) : CARD is -- This routine returns the implementation defined type tag for the -- object indicated. Built-in to this implementation. builtin SYS_TP end ; str_for_tp(type_code : CARD) : STR pre ~void(type_code) is -- This routine returns the programmer-defined class name for an -- object of the indicated class. Built-in to this implementation. builtin SYS_STR_FOR_TP end ; rune_name(obj : $OB) : RUNES is -- This routine returns the programmer-defined class name for the given -- object in the form of runes (encoded in ISO/IEC 10646-1 encoding). -- builtin after bootstrap !!! ??? -- builtin SYS_RUNES_FOR_GIVEN_TP return RUNES::create(str_for_tp(tp(obj))) ; end ; ob_eq(obj1,obj2 : $OB) : BOOL is -- This predicate returns true if and only if ob1 and ob2 are the same -- object, otherwise false. Built-in to this implementation. builtin SYS_OB_EQ end ; -- The following routines are special to the parallel pSather -- runtime engine. Refer to the language definition or manual for -- full details of their semantics. defer is builtin SYS_DEFER end ; import is builtin SYS_IMPORT end ; export is builtin SYS_EXPORT end ; builtin_clusters! : CARD is -- This iter is invoked when a call to the builtin iter clusters! is made. loop yield clusters.times! end end ; -- The last two routines which follow are provided to make -- use of special debugging facilities which may be needed -- when developing a concurrent program!! stats(on_off : BOOL) is -- This routine turns the concurrency engine collection of run-time -- statistics on or off as desired for post-execution analysis. Built-in -- to this implementation. builtin SYS_PSATHER_STATISTICS end ; trace(on_off : BOOL) is -- This routine turns on or off the concutrent execution trace -- facilities of the pSather engine - as desired for post-execution -- analysis. Built-in to this implementation. builtin SYS_PSATHER_TRACE end ; inlined_C(str : STR) is -- This routine is a place-holder for some system magic done under the -- covers by the current compiler. If this exception is ever raised then -- the compiler has generated bad code! SYS_ERROR::create.error(self,SYS_EXCEPT::Bad_Value,str) end ; end ; -- SYS

external class SATHER_ENGINE

external class SATHER_ENGINE is -- This external class describes the interface between th sather language -- and its low-level implementing facilities. -- Development History -- ------------------- -- Date Who By Detail -- ---- ------ ------ -- 23 Apr 97 kh Original from Sather distribution -- Version 1.0 Apr 97. Copyright K Hopper, U of Waikato memcpy(destination : REFERENCE,source : REFERENCE,count : CARD) : REFERENCE ; -- This routine is a blind bit copying operation which returns -- a reference to the string destination if successful. strlen(terminated_string : REFERENCE) : CARD ; -- This routine is provided to determine the length of a text string -- which is terminated by an externally defined null character. rt_create_astr(count : CARD,buffer : STR) : REFERENCE ; -- This routine splits strings separated by an externally defined null -- character into a single array of strings. end ; -- SATHER_ENGINE