changed System to be a class instead of an instance of a system dictionary
This commit is contained in:
@ -1,7 +1,5 @@
|
||||
class Apex(nil)
|
||||
{
|
||||
dcl(#class) sysdic.
|
||||
|
||||
## -------------------------------------------------------
|
||||
## -------------------------------------------------------
|
||||
|
||||
@ -541,3 +539,86 @@ extend Error
|
||||
<primitive: #_error_as_string>
|
||||
}
|
||||
}
|
||||
|
||||
class System(Apex)
|
||||
{
|
||||
}
|
||||
|
||||
pooldic System.Log
|
||||
{
|
||||
## -----------------------------------------------------------
|
||||
## defines log levels
|
||||
## these items must follow defintions in moo.h
|
||||
## -----------------------------------------------------------
|
||||
|
||||
DEBUG := 1.
|
||||
INFO := 2.
|
||||
WARN := 4.
|
||||
ERROR := 8.
|
||||
FATAL := 16.
|
||||
}
|
||||
|
||||
extend System
|
||||
{
|
||||
## the following methods may not look suitable to be placed
|
||||
## inside a system dictionary. but they are here for quick and dirty
|
||||
## output production from the moo code.
|
||||
## System logNl: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'.
|
||||
##
|
||||
method(#class) atLevel: level log: message
|
||||
{
|
||||
<primitive: #_log>
|
||||
## do nothing upon logging failure
|
||||
}
|
||||
|
||||
method(#class) atLevel: level log: message and: message2
|
||||
{
|
||||
<primitive: #_log>
|
||||
## do nothing upon logging failure
|
||||
}
|
||||
|
||||
method(#class) atLevel: level log: message and: message2 and: message3
|
||||
{
|
||||
<primitive: #_log>
|
||||
## do nothing upon logging failure
|
||||
}
|
||||
|
||||
method(#class) atLevel: level logNl: message
|
||||
{
|
||||
## the #_log primitive accepts an array.
|
||||
## so the following lines should work also.
|
||||
## | x |
|
||||
## x := Array new: 2.
|
||||
## x at: 0 put: message.
|
||||
## x at: 1 put: S'\n'.
|
||||
## ^self atLevel: level log: x.
|
||||
|
||||
^self atLevel: level log: message and: S'\n'.
|
||||
}
|
||||
|
||||
method(#class) atLevel: level logNl: message and: message2
|
||||
{
|
||||
^self atLevel: level log: message and: message2 and: S'\n'.
|
||||
}
|
||||
|
||||
method(#class) log: message
|
||||
{
|
||||
^self atLevel: System.Log.INFO log: message.
|
||||
}
|
||||
|
||||
method(#class) log: message and: message2
|
||||
{
|
||||
^self atLevel: System.Log.INFO log: message and: message2.
|
||||
}
|
||||
|
||||
method(#class) logNl: message
|
||||
{
|
||||
^self atLevel: System.Log.INFO logNl: message.
|
||||
}
|
||||
|
||||
method(#class) logNl: message and: message2
|
||||
{
|
||||
^self atLevel: System.Log.INFO logNl: message and: message2.
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -500,86 +500,8 @@ class Dictionary(Set)
|
||||
}
|
||||
}
|
||||
|
||||
pooldic Log
|
||||
{
|
||||
## -----------------------------------------------------------
|
||||
## defines log levels
|
||||
## these items must follow defintions in moo.h
|
||||
## -----------------------------------------------------------
|
||||
|
||||
DEBUG := 1.
|
||||
INFO := 2.
|
||||
WARN := 4.
|
||||
ERROR := 8.
|
||||
FATAL := 16.
|
||||
}
|
||||
|
||||
class SystemDictionary(Set)
|
||||
{
|
||||
## the following methods may not look suitable to be placed
|
||||
## inside a system dictionary. but they are here for quick and dirty
|
||||
## output production from the moo code.
|
||||
## System logNl: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'.
|
||||
##
|
||||
|
||||
dcl(#pooldic) Log.
|
||||
|
||||
method atLevel: level log: message
|
||||
{
|
||||
<primitive: #_log>
|
||||
## do nothing upon logging failure
|
||||
}
|
||||
|
||||
method atLevel: level log: message and: message2
|
||||
{
|
||||
<primitive: #_log>
|
||||
## do nothing upon logging failure
|
||||
}
|
||||
|
||||
method atLevel: level log: message and: message2 and: message3
|
||||
{
|
||||
<primitive: #_log>
|
||||
## do nothing upon logging failure
|
||||
}
|
||||
|
||||
method atLevel: level logNl: message
|
||||
{
|
||||
## the #_log primitive accepts an array.
|
||||
## so the following lines should work also.
|
||||
## | x |
|
||||
## x := Array new: 2.
|
||||
## x at: 0 put: message.
|
||||
## x at: 1 put: S'\n'.
|
||||
## ^self atLevel: level log: x.
|
||||
|
||||
^self atLevel: level log: message and: S'\n'.
|
||||
}
|
||||
|
||||
method atLevel: level logNl: message and: message2
|
||||
{
|
||||
^self atLevel: level log: message and: message2 and: S'\n'.
|
||||
}
|
||||
|
||||
method log: message
|
||||
{
|
||||
^self atLevel: Log.INFO log: message.
|
||||
}
|
||||
|
||||
method log: message and: message2
|
||||
{
|
||||
^self atLevel: Log.INFO log: message and: message2.
|
||||
}
|
||||
|
||||
method logNl: message
|
||||
{
|
||||
^self atLevel: Log.INFO logNl: message.
|
||||
}
|
||||
|
||||
method logNl: message and: message2
|
||||
{
|
||||
^self atLevel: Log.INFO logNl: message and: message2.
|
||||
}
|
||||
|
||||
method at: key
|
||||
{
|
||||
if (key class ~= Symbol) { InvalidArgumentException signal: 'key is not a symbol' }.
|
||||
|
@ -318,7 +318,16 @@ class MyObject(Object)
|
||||
}
|
||||
}*)
|
||||
|
||||
Processor sleepFor: 20.
|
||||
System logNl: 'Sleeping start now....'.
|
||||
|
||||
(* basicAt: 12 to access the nsdic field. use a proper method once it's defined in Class *)
|
||||
(System basicAt: 12) keysAndValuesDo: [:k :v |
|
||||
k dump.
|
||||
v dump.
|
||||
'------------' dump.
|
||||
].
|
||||
|
||||
Processor sleepFor: 3. ## DEBUG VM... VM WAITING FOR 10 SECS instead of 3.
|
||||
}
|
||||
|
||||
(*
|
||||
|
Reference in New Issue
Block a user