Issue175

classification
Title A couple of problems with new packages
Type defect Module package infrastructure
Severity some work obstructed Platform N/A
Keywords Nosy List acs, mike, mike.kupfer
explanation
process
These controls should only be changed by committers and tracker administrators.
Status closed   Reason fixed
Superseder   Submitted 2007-12-01.17:17:12
Priority normal   Assigned To

Created on 2008-01-19.06:43:05 by acs, last changed 2008-02-24.22:26:16 by mike.kupfer.

Messages
msg587 [hidden] ([hidden]) Date: 2008-02-24.22:26:15
  Message-ID: <1203891976.04.0.991960950697.issue175@xemacs.org>
Closing after getting confirmation from Vin.
http://calypso.tux.org/pipermail/xemacs-beta/2008-February/013655.html
msg565 [hidden] ([hidden]) Date: 2008-02-16.21:43:37
  Message-ID: <1203198217.47.0.0541004247029.issue175@xemacs.org>
From the email trail, it looks like this issue has been
resolved.  Is that correct?
msg264 [hidden] ([hidden]) Date: 2008-01-19.06:43:06
  Message-ID: <20a807210712030738r401885b8x43c59f1aa5638d83@mail.gmail.com>
On Dec 3, 2007 9:04 AM, Michael Sperber <sperber@deinprogramm.de> wrote:
>
> "Vin Shelton" <acs@alumni.princeton.edu> writes:
>
> > On Dec 3, 2007 2:04 AM, Michael Sperber <sperber@deinprogramm.de> wrote:
> >>
> >> "Vin Shelton" <acs@alumni.princeton.edu> writes:
> >>
> >> > That worked - thanks!  Here's another one; I was opening 21.5's
> >> > lisp/autoload.el file and got this backtrace:
> >>
> >> More of the same.  Better now?
> >
> > Thanks for investigating.  I think your latest changes to semantic
> > broke cogre's build:
>
> I push anywhere, it squirts out somewhere else.  :-) This was a typo,
> though.  Better?

Yes - I can build the packages with a 21.5 XEmacs (with or without gmp).

Thank you,
  Vin

_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta@xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
msg263 [hidden] ([hidden]) Date: 2008-01-19.06:43:06
  Message-ID: <y9l1wa3x4b3.fsf@dyn7.specs.de>
"Vin Shelton" <acs@alumni.princeton.edu> writes:

> On Dec 3, 2007 2:04 AM, Michael Sperber <sperber@deinprogramm.de> wrote:
>>
>> "Vin Shelton" <acs@alumni.princeton.edu> writes:
>>
>> > That worked - thanks!  Here's another one; I was opening 21.5's
>> > lisp/autoload.el file and got this backtrace:
>>
>> More of the same.  Better now?
>
> Thanks for investigating.  I think your latest changes to semantic
> broke cogre's build:

I push anywhere, it squirts out somewhere else.  :-) This was a typo,
though.  Better?
msg262 [hidden] ([hidden]) Date: 2008-01-19.06:43:06
  Message-ID: <20a807210712030514q638ef73xe83ecd686522b429@mail.gmail.com>
On Dec 3, 2007 2:04 AM, Michael Sperber <sperber@deinprogramm.de> wrote:
>
> "Vin Shelton" <acs@alumni.princeton.edu> writes:
>
> > That worked - thanks!  Here's another one; I was opening 21.5's
> > lisp/autoload.el file and got this backtrace:
>
> More of the same.  Better now?

Thanks for investigating.  I think your latest changes to semantic
broke cogre's build:

make[2]: Leaving directory
`/usr/local/build/xemacs-packages-2007-12-03/xemacs-packages/semantic'
[ -d cogre ] && make -w -C cogre bytecompile
make[2]: Entering directory
`/usr/local/build/xemacs-packages-2007-12-03/xemacs-packages/cogre'
xemacs-21.5-min -no-autoloads -vanilla -batch -eval '(setq
stack-trace-on-error t load-always-display-messages t
load-ignore-out-of-date-elc-files t load-show-full-path-in-messages
t)' -eval '(setq load-path (list lisp-directory))' -l
/usr/local/build/xemacs-packages-2007-12-03/package-compile.el --
xemacs-base edebug xemacs-devel cedet-common eieio semantic --  -f
batch-byte-compile auto-autoloads.el

Loading /usr/local/build/xemacs-packages-2007-12-03/package-compile.el...
  Loading /usr/local/xemacs-21.5-min/share/xemacs-21.5-b28/lisp/auto-autoloads.elc...
  Requiring /usr/local/xemacs-21.5-min/share/xemacs-21.5-b28/lisp/bytecomp.elc...
  Requiring /usr/local/xemacs-21.5-min/share/xemacs-21.5-b28/lisp/byte-optimize.elc...
  Loading /usr/local/build/xemacs-packages-2007-12-03/xemacs-packages/semantic/auto-autoloads.elc...

xemacs exiting.

  # bind (stack-trace-on-signal debug-on-signal stack-trace-on-error
debug-on-error)
  # (unwind-protect ...)
  mode-local-map-mode-buffers(c++-mode activate-mode-local-bindings)
  # bind (mode parent)
  byte-code("..." [parent mode c++-mode c-mode put mode-local-parent
mode-local-map-mode-buffers activate-mode-local-bindings] 4)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  load-internal("/usr/local/build/xemacs-packages-2007-12-03/xemacs-packages/semantic/auto-autoloads"
nil nil nil binary)
  # bind (path handler filename nosuffix nomessage noerror file)
  load("/usr/local/build/xemacs-packages-2007-12-03/xemacs-packages/semantic/auto-autoloads")
  # bind (etc-dir dir)
  (let* ((dir (car dirs)) (etc-dir (expand-file-name "etc" dir)))
(while dirs (push (car dirs) load-path) (setq dirs (cdr dirs))) (if
(file-directory-p (expand-file-name (car depends) etc-dir)) (push
(file-name-as-directory etc-dir) data-directory-list)) (load
(expand-file-name "auto-autoloads" dir)) (pop depends))
  # bind (dirs)
  (let ((dirs (package-name-to-directories (car depends)))) (when
(null dirs) (error "%s is not in `package-directory-map'.  See:
package-compile.el" (car depends))) (let* ((dir (car dirs)) (etc-dir
(expand-file-name "etc" dir))) (while dirs (push (car dirs) load-path)
(setq dirs (cdr dirs))) (if (file-directory-p (expand-file-name (car
depends) etc-dir)) (push (file-name-as-directory etc-dir)
data-directory-list)) (load (expand-file-name "auto-autoloads" dir))
(pop depends)))
  (while depends (let ((dirs (package-name-to-directories (car
depends)))) (when (null dirs) (error "%s is not in
`package-directory-map'.  See: package-compile.el" (car depends)))
(let* ((dir (car dirs)) (etc-dir (expand-file-name "etc" dir))) (while
dirs (push (car dirs) load-path) (setq dirs (cdr dirs))) (if
(file-directory-p (expand-file-name (car depends) etc-dir)) (push
(file-name-as-directory etc-dir) data-directory-list)) (load
(expand-file-name "auto-autoloads" dir)) (pop depends))))
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  # (unwind-protect ...)
  load-internal("/usr/local/build/xemacs-packages-2007-12-03/package-compile.el"
nil t nil raw-text)
  # bind (path handler filename nosuffix nomessage noerror file)
  load("/usr/local/build/xemacs-packages-2007-12-03/package-compile.el" nil t)
  # bind (file arg)
  command-line-do-load("-l")
  # bind (dir file-count line end-of-options file-p arg tem)
  command-line-1()
  # bind (command-line-args-left)
  command-line()
  # bind (error-data)
  normal-top-level()
  # (condition-case ... . error)
  # (catch top-level ...)
Symbol's function definition is void:
mode-local-map-mode-buffersmake[2]: *** [auto-autoloads.elc] Error 255
make[2]: Leaving directory
`/usr/local/build/xemacs-packages-2007-12-03/xemacs-packages/cogre'
make[1]: *** [cogre/bytecompile.target] Error 2
make[1]: Leaving directory
`/usr/local/build/xemacs-packages-2007-12-03/xemacs-packages'
make: *** [xemacs-packages/bytecompile.target] Error 2

Regards,
  Vin

_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta@xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
msg261 [hidden] ([hidden]) Date: 2008-01-19.06:43:06
  Message-ID: <y9lve7gw95w.fsf@dyn7.specs.de>
"Vin Shelton" <acs@alumni.princeton.edu> writes:

> That worked - thanks!  Here's another one; I was opening 21.5's
> lisp/autoload.el file and got this backtrace:

More of the same.  Better now?
msg259 [hidden] ([hidden]) Date: 2008-01-19.06:43:05
  Message-ID: <20a807210712021706m450a175bl6896dd7e34784668@mail.gmail.com>
Dear Aidan,

Thanks for the patch.

On Dec 2, 2007 6:23 PM, Aidan Kehoe <kehoea@parhasard.net> wrote:
>
>  Ar an dara lá de mí na Nollaig, scríobh Vin Shelton:
>
>  > On Dec 2, 2007 3:29 PM, Aidan Kehoe <kehoea@parhasard.net> wrote:
>  >
>  > > That's coming from my change of
>  > > http://mid.gmane.org/18252.39139.149087.844153@parhasard.net ; the 21.5 byte
>  > > compiler adds a :default keyword to custom-declare-variable calls when it
>  > > byte compiles the init value. This allows the custom UI code to present
>  > > non-byte-compiled Lisp for editing. I don't know of a way to avoid the error
>  > > entirely.
>  > >
>  > > The error should be limited to the specific case of 21.4 loading code
>  > > compiled by 21.5 where the code has complex VALUE clauses in defcustom
>  > > calls.
>  > >
>  > > Vin, would you consider adding the very last hunk of that patch to 21.4?
>  >
>  > Yes, I'll consider it, but whether or not I apply it, we must solve
>  > the problem for users of XEmacs <= 21.4.21.  Please make a suggestion
>  > so that packages built with 21.5 will work with existing 21.4
>  > installs.
>
> With a bit of further thought, the below occurs to me, which is entirely
> compatible and very ugly. Is running packages built with 21.5 on 21.4 a
> supported use case?

Yes.

> What happens if we modify 21.5's byte codes?

We try not to do that.  At the moment, it's not possible to build the
packages with the 21.4 compiler, so it's pretty important that we be
able to build the packages with 21.5 and load them into 21.4.

>
> lisp/ChangeLog addition:
>
> 2007-12-03  Aidan Kehoe  <kehoea@parhasard.net>
>
>         * bytecomp.el (byte-compile-file-form-custom-declare-variable):
>         Instead of using a keyword argument that's incompatible with 21.4,
>         modify the byte compiled init code to change the variable's
>         standard-value property itself.
>
>
> XEmacs Trunk source patch:
> Diff command:   cvs -q diff -Nu
> Files affected: lisp/bytecomp.el
> ===================================================================
> RCS
>
> Index: lisp/bytecomp.el
> ===================================================================
> RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/bytecomp.el,v
> retrieving revision 1.22
> diff -u -u -r1.22 bytecomp.el
> --- lisp/bytecomp.el    2007/12/01 13:40:07     1.22
> +++ lisp/bytecomp.el    2007/12/02 23:19:18
> @@ -2405,10 +2405,17 @@
>         ;; And save a value to be examined in the custom UI, if that differs
>         ;; from the init value.
>         (unless (equal to-examine (car-safe (cdr (third form))))
> -         (setf (nthcdr 4 form) (nconc
> -                                (list :default
> -                                      (list 'quote to-examine))
> -                                (nthcdr 4 form)))))
> +         (setcdr (third form)
> +                 (list (byte-compile-top-level
> +                        ;; This is ugly. custom-declare-variable errors if
> +                        ;; it's passed a keyword it doesn't know about, and
> +                        ;; so to make this code run on 21.4, we add code to
> +                        ;; modify the standard-value property to the
> +                        ;; byte-compiled value for DEFAULT.
> +                        `(prog2 (put ,(second form) 'standard-value
> +                                     '(,to-examine))
> +                          ,to-examine)
> +                        nil 'file)))))
>      form))
>
>  ;;;###autoload

Thanks, I'll examine the patch and try it out.  At first blush, I
agree with you: it's ugly :-) .

Regards,
  Vin

_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta@xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
msg258 [hidden] ([hidden]) Date: 2008-01-19.06:43:05
  Message-ID: <18259.15980.194701.169648@parhasard.net>
Ar an dara lá de mí na Nollaig, scríobh Vin Shelton: 

 > On Dec 2, 2007 3:29 PM, Aidan Kehoe <kehoea@parhasard.net> wrote:
 >
 > > That's coming from my change of
 > > http://mid.gmane.org/18252.39139.149087.844153@parhasard.net ; the 21.5 byte
 > > compiler adds a :default keyword to custom-declare-variable calls when it
 > > byte compiles the init value. This allows the custom UI code to present
 > > non-byte-compiled Lisp for editing. I don't know of a way to avoid the error
 > > entirely.
 > >
 > > The error should be limited to the specific case of 21.4 loading code
 > > compiled by 21.5 where the code has complex VALUE clauses in defcustom
 > > calls.
 > >
 > > Vin, would you consider adding the very last hunk of that patch to 21.4?
 > 
 > Yes, I'll consider it, but whether or not I apply it, we must solve
 > the problem for users of XEmacs <= 21.4.21.  Please make a suggestion
 > so that packages built with 21.5 will work with existing 21.4
 > installs.

With a bit of further thought, the below occurs to me, which is entirely
compatible and very ugly. Is running packages built with 21.5 on 21.4 a
supported use case? What happens if we modify 21.5’s byte codes?

lisp/ChangeLog addition:

2007-12-03  Aidan Kehoe  <kehoea@parhasard.net>

	* bytecomp.el (byte-compile-file-form-custom-declare-variable):
	Instead of using a keyword argument that's incompatible with 21.4,
	modify the byte compiled init code to change the variable's
	standard-value property itself. 

XEmacs Trunk source patch:
Diff command:   cvs -q diff -Nu
Files affected: lisp/bytecomp.el
===================================================================
RCS

Index: lisp/bytecomp.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/bytecomp.el,v
retrieving revision 1.22
diff -u -u -r1.22 bytecomp.el
--- lisp/bytecomp.el	2007/12/01 13:40:07	1.22
+++ lisp/bytecomp.el	2007/12/02 23:19:18
@@ -2405,10 +2405,17 @@
        ;; And save a value to be examined in the custom UI, if that differs
        ;; from the init value.
        (unless (equal to-examine (car-safe (cdr (third form))))
-         (setf (nthcdr 4 form) (nconc
-                                (list :default 
-                                      (list 'quote to-examine))
-                                (nthcdr 4 form)))))
+         (setcdr (third form)
+                 (list (byte-compile-top-level 
+                        ;; This is ugly. custom-declare-variable errors if
+                        ;; it's passed a keyword it doesn't know about, and
+                        ;; so to make this code run on 21.4, we add code to
+                        ;; modify the standard-value property to the
+                        ;; byte-compiled value for DEFAULT.
+                        `(prog2 (put ,(second form) 'standard-value
+                                     '(,to-examine))
+                          ,to-examine)
+                        nil 'file)))))
     form))

 ;;;###autoload
msg257 [hidden] ([hidden]) Date: 2008-01-19.06:43:05
  Message-ID: <18259.5560.30047.977151@parhasard.net>
Ar an dara lá de mí na Nollaig, scríobh Michael Sperber: 

 > 
 > "Vin Shelton" <acs@alumni.princeton.edu> writes:
 > 
 > > Mike -
 > >
 > > I can now build the xemacs-packages with a 21.5 XEmacs.  Thanks.
 > >
 > > In using those packages, I notice the following problems:
 > >
 > >
 > > (1) When I start up a 21.4 XEmacs -vanilla evaluating
 > >
 > >   (require 'jka-compr)
 > >
 > > yields the following backtrace:
 > >
 > > Debugger entered--Lisp error: (error "Unknown keyword" :default)
 > >   signal(error ("Unknown keyword" :default))
 > [...]
 > 
 > I don't see where that's coming from: Could you look up your definition
 > of `jka-compr-temp-name-template' (in jka-compr.el) and evaluate 
 > 
 > (macroexpand '(defcustom jka-compr-temp-name-template ...))

That’s coming from my change of
http://mid.gmane.org/18252.39139.149087.844153@parhasard.net ; the 21.5 byte
compiler adds a :default keyword to custom-declare-variable calls when it
byte compiles the init value. This allows the custom UI code to present
non-byte-compiled Lisp for editing. I don’t know of a way to avoid the error
entirely. 

The error should be limited to the specific case of 21.4 loading code
compiled by 21.5 where the code has complex VALUE clauses in defcustom
calls.

Vin, would you consider adding the very last hunk of that patch to 21.4?
Here it is: 

Index: lisp/custom.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/custom.el,v
retrieving revision 1.14
diff -u -u -r1.14 custom.el
--- lisp/custom.el	2007/06/21 13:39:10	1.14
+++ lisp/custom.el	2007/11/27 22:00:47
@@ -184,6 +192,10 @@
 			   value)
 		   ;; Fast code for the common case.
 		   (put symbol 'custom-options (copy-sequence value))))
+                ;; In the event that the byte compile has compiled the init
+                ;; value, we want the value the UI sees to be uncompiled.
+                ((eq keyword :default)
+                 (put symbol 'standard-value (list value)))
 		(t
 		 (custom-handle-keyword symbol keyword value
 					'custom-variable))))))
msg256 [hidden] ([hidden]) Date: 2008-01-19.06:43:05
  Message-ID: <y9lk5nx4ksj.fsf@dyn7.specs.de>
"Vin Shelton" <acs@alumni.princeton.edu> writes:

> Mike -
>
> I can now build the xemacs-packages with a 21.5 XEmacs.  Thanks.
>
> In using those packages, I notice the following problems:
>
>
> (1) When I start up a 21.4 XEmacs -vanilla evaluating
>
>   (require 'jka-compr)
>
> yields the following backtrace:
>
> Debugger entered--Lisp error: (error "Unknown keyword" :default)
>   signal(error ("Unknown keyword" :default))
>   custom-handle-keyword(jka-compr-temp-name-template :default
> (expand-file-name "jka-com" (temp-directory)) custom-variable)
>   custom-declare-variable(jka-compr-temp-name-template (byte-code "ÀÁÂ
> \"‡" [expand-file-name "jka-com" temp-directory] 3) "Prefix added to
> all temp files created by jka-compr.\nThere should be no more than
> seven characters after the final `/'." :default (expand-file-name
> "jka-com" (temp-directory)) :type string :group jka-compr)
>   load-internal("jka-compr" nil t nil binary)
>   load("jka-compr" nil t nil)
>   require(jka-compr)
>   eval((require (quote jka-compr)))
>   eval-interactive((require (quote jka-compr)))
>   eval-last-sexp(t)
>   #<compiled-function nil "...(13)" [standard-output terpri
> eval-last-sexp t] 2 997397 nil>()
>   call-interactively(eval-print-last-sexp)

I don't see where that's coming from: Could you look up your definition
of `jka-compr-temp-name-template' (in jka-compr.el) and evaluate 

(macroexpand '(defcustom jka-compr-temp-name-template ...))

>
> (2) When I start up a 21.5 XEmacs using those packages (without cedet
> installed) and then evaluate
>
>   (info)
>
> I get the following backtrace:
>
> Debugger entered--Lisp error: (file-error "Cannot open load file" "ezimage")
>   [...]
>   load("sb-info" nil require nil)
>   require(sb-info)
>   (progn (require (quote sb-info)))
>   load-internal("info" nil nil nil binary)
>   load("info" nil nil nil)
>   (info)
>   eval((info))
>   eval-interactive((info))
>   eval-last-sexp(t)
>   #<compiled-function nil "...(13)" [standard-output terpri
> eval-last-sexp t] 2 1243051 nil>()
>   call-interactively(eval-print-last-sexp)

Ah---speedbar hooks itself to Info mode on autoload.  Fixed.
msg255 [hidden] ([hidden]) Date: 2008-01-19.06:43:05
  Message-ID: <20a807210712010917t61bd850euca2b8b02ce40adf4@mail.gmail.com>
Mike -

I can now build the xemacs-packages with a 21.5 XEmacs.  Thanks.

In using those packages, I notice the following problems:

(1) When I start up a 21.4 XEmacs -vanilla evaluating

  (require 'jka-compr)

yields the following backtrace:

Debugger entered--Lisp error: (error "Unknown keyword" :default)
  signal(error ("Unknown keyword" :default))
  custom-handle-keyword(jka-compr-temp-name-template :default
(expand-file-name "jka-com" (temp-directory)) custom-variable)
  custom-declare-variable(jka-compr-temp-name-template (byte-code "ÀÁÂ
\"‡" [expand-file-name "jka-com" temp-directory] 3) "Prefix added to
all temp files created by jka-compr.\nThere should be no more than
seven characters after the final `/'." :default (expand-file-name
"jka-com" (temp-directory)) :type string :group jka-compr)
  load-internal("jka-compr" nil t nil binary)
  load("jka-compr" nil t nil)
  require(jka-compr)
  eval((require (quote jka-compr)))
  eval-interactive((require (quote jka-compr)))
  eval-last-sexp(t)
  #<compiled-function nil "...(13)" [standard-output terpri
eval-last-sexp t] 2 997397 nil>()
  call-interactively(eval-print-last-sexp)

(2) When I start up a 21.5 XEmacs using those packages (without cedet
installed) and then evaluate

  (info)

I get the following backtrace:

Debugger entered--Lisp error: (file-error "Cannot open load file" "ezimage")
  signal(file-error ("Cannot open load file" "ezimage"))
  load("ezimage" nil require nil)
  require(ezimage)
  load-internal("sb-image" nil require nil binary)
  load("sb-image" nil require nil)
  require(sb-image)
  byte-code("..." [require assoc easymenu dframe sb-image
custom-declare-group speedbar nil "File and tag browser frame." :group
etags tools convenience speedbar-faces "Faces used in speedbar."
:prefix "speedbar-" faces speedbar-vc "Version control display in
speedbar."] 10)
  load-internal("speedbar" nil require nil binary)
  load("speedbar" nil require nil)
  require(speedbar)
  byte-code("..." [require speedbar info] 2)
  load-internal("sb-info" nil require nil binary)
  load("sb-info" nil require nil)
  require(sb-info)
  (progn (require (quote sb-info)))
  load-internal("info" nil nil nil binary)
  load("info" nil nil nil)
  (info)
  eval((info))
  eval-interactive((info))
  eval-last-sexp(t)
  #<compiled-function nil "...(13)" [standard-output terpri
eval-last-sexp t] 2 1243051 nil>()
  call-interactively(eval-print-last-sexp)

Please investigate.

Thank you,
  Vin

_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta@xemacs.org
http://calypso.tux.org/cgi-bin/mailman/listinfo/xemacs-beta
History
Date User Action Args
2008-02-24 22:26:16mike.kupfersetstatus: chatting -> closed
reason: fixed
messages: + msg587
2008-02-16 21:43:37mike.kupfersetseverity: some work obstructed
nosy: + mike, acs, mike.kupfer
messages: + msg565
module: + package infrastructure
priority: normal
platform: + N/A
type: defect
2008-01-19 06:43:06acssetmessages: + msg264
2008-01-19 06:43:06sperbersetmessages: + msg263
2008-01-19 06:43:06acssetmessages: + msg262
2008-01-19 06:43:06sperbersetmessages: + msg261
2008-01-19 06:43:06acssetmessages: + msg259
2008-01-19 06:43:05aidansetmessages: + msg258
2008-01-19 06:43:05aidansetmessages: + msg257
2008-01-19 06:43:05sperbersetstatus: new -> chatting
messages: + msg256
2008-01-19 06:43:05acscreate