[M3devel] CVSup crashing WAS: Re: m3gdb and YACC

Tony Hosking hosking at cs.purdue.edu
Sat Jul 11 23:31:54 CEST 2009


Please try my recent commits from earlier to day.

On 11 Jul 2009, at 16:10, Peter Eiserloh wrote:

>
> Hi Tony,
>
> Architecture: AMD64_LINUX.
> Code base: 20090628.
>
> I am untarring 20090710 right now, and will rebuild the
> CM3 against it using the standard scripts/do-cm3-std.sh
>
> I don't expect any difference in behavior though as that
> is pretty much what my Makefile does anyways.
>
> Okay, I can also try this on my old Macintosh (PPC_DARWIN).
>
>
> Are there any additional diagnostics that I can turn on
> in the runtime?  Something simple may help like when NEW
> complains, printing out:
>  o the size of memory currently allocated,
>  o the current number of allocations,
>  o the total number of allocations performed,
>  o the number of garbage collection runs performed, and
>  o the number of objects reclaimed by the garbage collector,
> and so forth.
>
> This may be difficult since we just failed to allocate,
> memory, the diagnostics may not have the ability to
> format strings for output.
>
>
> +--------------------------------------------------------+
> | Peter P. Eiserloh                                      |
> +--------------------------------------------------------+
>
>
> --- On Sat, 7/11/09, Tony Hosking <hosking at cs.purdue.edu> wrote:
>
>> From: Tony Hosking <hosking at cs.purdue.edu>
>> Subject: Re: [M3devel] CVSup crashing WAS: Re: m3gdb and YACC
>> To: "Olaf Wagner" <wagner at elegosoft.com>
>> Cc: "Peter Eiserloh" <eiserlohpp at yahoo.com>, m3devel at elegosoft.com
>> Date: Saturday, July 11, 2009, 8:19 AM
>> I'd definitely need some way to reproduce the
>> problem.  Detailed instructions would be best.
>>  What platform are you running
>> on?
>> On 11 Jul 2009, at 06:47, Olaf
>> Wagner
>> wrote:
>> Hm, I'm afraid we may have a regression
>> in the runtime/gc here.
>> CVSup always worked without problems for me (and still is
>> copying
>> FreeBSD, CM3 and other repositories between various
>> machines for
>> me and Elego). Surely CVSup is doing no such thing as
>> keeping
>> all its files in memory.
>>
>> I haven't tried the version Jay put into the CM3 repo
>> though.
>> So I see three possibilities:
>>
>> o Jay introduced the problem in the CVSup sources when he
>>   adapted them to the current CM3 (low
>> probability).
>>
>> o You've got a broken runtime / CM3 version (and
>> current
>>   sources work). I'd guess you are using the
>> current version though.
>>
>> o We've got a problem in our runtime code, perhaps --
>> but not
>>   necessarily -- the garbage collector.
>>
>> I'd suggest we rule out the second one and you
>> reproduce the problem
>> with a current source set (if not done yet). Then let's
>> see what Jay
>> and Antony have to say, as they did almost all the source
>> changes
>> in that area recently.
>>
>> Olaf
>>
>> Quoting Peter Eiserloh <eiserlohpp at yahoo.com>:
>>
>> Hi Olaf,
>>
>> Well, I tried CVSup,
>> and it started looking real good, until
>> it crashed, with a
>> message from the M3 runtime, saying that
>> NEW could not allocate
>> any memory.
>>
>> So I ran it a second
>> time, and it got further, then crashed
>> again.
>>
>> So, a third time, but
>> with "top" running in another window,
>> and sure enough cvsup,
>> was allocating something like 1.2 GB
>> of data before it was
>> crashing.  This is bigger than the
>> CVS repository that it
>> had already downloaded.
>>
>> I am thinking that
>> cvsup is keeping the contents of every
>> file it downloaded in
>> memory.  If so, this is a problem.
>>
>> If it is properly
>> removing references, then maybe the
>> garbage collector is
>> failing.  This would be a bigger
>> problem, but with our
>> compiler's runtime library.
>>
>> Are other people
>> noticing problems.  Is it just me?
>> Am I the only one to
>> attempt downloading the entire
>> CVS repository for
>> CM3?  Could you try it?
>>
>>
>> I sent an email to the
>> email listed in cvsup's "about box"
>> (cvsup-bugs at polstra.com),
>> but that failed.  The email address
>> no longer works.
>>
>> peter at black:/data/modula-3/cm3 $
>>  debian-pkg/current/debian/tmp/usr/lib/cm3/bin/cvsup
>> cvsupfile.cm3
>>
>> ***
>> *** runtime error:
>> ***
>>    NEW() was unable to allocate more memory.
>> ***
>>    file
>> "../src/runtime/common/RuntimeError.m3", line 63
>> ***
>>
>> Aborted
>>
>> Peter
>>
>>
>> +--------------------------------------------------------+
>> | Peter P. Eiserloh
>>                                      |
>> +--------------------------------------------------------+
>>
>>
>> --- On Sat, 7/11/09,
>> Olaf Wagner <wagner at elegosoft.com>
>> wrote:
>>
>> From: Olaf Wagner <wagner at elegosoft.com>
>> Subject: Re: m3gdb and
>> YACC
>> To: "Peter
>> Eiserloh" <eiserlohpp at yahoo.com>
>> Date: Saturday, July 11,
>> 2009, 2:49 AM
>> Quoting Peter Eiserloh
>> <eiserlohpp at yahoo.com>:
>>
>>> Hi Olaf,
>>>
>>> The import script
>> (git-importcvs) internally uses
>> cvsps, which
>>> you may already
>> have.
>>>
>>> Anyways, here is
>> the first ten lines from a log file
>> of an import
>>> that I just
>> started.
>>>
>>>
>>> peter at black:~ $
>> head Import-cm3-20090708.log
>>> Running cvsps...
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/etc/make-stds.texi  on
>> unnamed branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/gcc/config/vax/vax.c on unnamed
>> branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/texinfo/config.h.in on unnamed
>> branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/texinfo/po/Makefile.in.in on
>> unnamed branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/.brik on
>> unnamed branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/texinfo/INTRODUCTION on unnamed
>> branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/gcc/config/i386/osfelf.h on
>> unnamed branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/gcc/config/mips/sni-svr4.h on
>> unnamed
>> branch
>>> WARNING: revision
>> 1.1.3.1 of file
>> m3-sys/m3cc/gcc/gcc/config/v850/lib1funcs.asm on
>> unnamed
>> branch
>>
>> It looks like these
>> files have a second vendor branch
>> without a
>> proper name. CVS does
>> not cope well with multiple vendor
>> branches
>> (in fact it never really
>> worked), but there won't be any
>> valuable
>> information in that
>> branch I'm sure, so you can ignore it.
>>
>>> Later this weekend,
>> I will attempt to use CVSup.
>> First,
>>> I will have to find
>> usable documentation, since I
>> have
>>> never used CVSup
>> before.
>>>
>>> Do you have a
>> script to use with CVSup to access the
>>> CM3 CVS repo?
>> I am lasy.
>>>
>>> I use 'git'
>> for all my current projects.  I used
>> to use
>>> CVS, and had
>> started looking into using subversion
>> (SVN),
>>> I even purchased a
>> couple books on SVN.  Then
>> 'git' burst
>>> upon the Linux
>> world, and is gaining converts all over
>> the
>>> place.
>>>
>>> It really does
>> provide a better work-flow.  The
>> easy
>>> creation of a
>> branch is a given, it is git's ability
>>> to do easy merges,
>> which is gaining all the good
>> reputation.
>>>
>>> Rather than get all
>> evangelistic on you, as I am sure
>> you
>>> have already heard
>> it many times already.
>>>
>>> Many businesses are
>> moving to git.  The only
>> problem some
>>> enterprise
>> companies are having is the ability to
>> restrict
>>> access of
>> authorized users to only portions of the
>> repository.
>>> These types of
>> problems don't effect open source
>> software
>>> development.
>>>
>>> Once I have a
>> working 'git' repository for cm3, I will
>> share
>>> the technique, and
>> maybe, start the foundations for a
>>> transition from
>> CVS, towards 'git'.  But I
>> suggest a slow
>>> process, with
>> distinct stages.   At any
>> stage we could stop,
>>> or even revert.
>>>
>>> The problem is that
>> once people start using git, they
>> don''t
>>> want to go back to
>> using CVS, or any of the older
>> methods.
>>> Maybe that
>> isn't so much of a problem after all.
>>>
>>> STAGE-1: Simple
>> mirror of the CVS archive,
>> periodically
>>>
>>     updated (say once
>> every 6 hours).
>> Document on
>>>
>>     web site, as to how
>> to clone, and update a
>> git
>>>
>>     repository.  No
>> uploads to git.
>>> STAGE-2: Convert
>> web page scripts to use git.
>>> STAGE-3: Convert
>> tinderbox.
>>> STAGE-4: Uploads to
>> git.  Install gitosis or
>> similar server
>>>
>>     for git uploads.
>> Document the upload
>> process on web
>>>
>>     pages.
>>> STAGE-5: CVS
>> mirrors the git repo.  Uploads to
>> git only.
>>> STAGE-6: Move last
>> of the CVS people, over to git.
>>> STAGE-7: Remove
>> CVS.  (optional)
>>
>> Let's see how far
>> you get. Converting all the
>> infrastructure (scripts
>> and documentation) may
>> be much more work than you imagine.
>> And one
>> we propose a special
>> tool (be it git or svn or mercurial)
>> there will
>> start discussions on
>> what is best and what we should do
>> :-/
>>
>> So offering an optional
>> alternative access may be a good
>> plan.
>> The majority of users
>> should agree that they want the
>> change though.
>> And we need to consider
>> use of GUIs and Windows users,
>> too.
>>
>> Olaf
>> --Olaf Wagner -- elego
>> Software Solutions GmbH
>>
>>
>>    Gustav-Meyer-Allee 25 /
>> Gebäude 12, 13355
>> Berlin, Germany
>> phone: +49 30 23 45 86
>> 96  mobile: +49 177 2345
>> 869  fax: +49 30 23
>> 45 86 95
>>    http://www.elegosoft.com
>> |
>> Geschäftsführer: Olaf
>> Wagner | Sitz: Berlin
>> Handelregister:
>> Amtsgericht Charlottenburg HRB 77719 |
>> USt-IdNr: DE163214194
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> -- 
>> Olaf Wagner -- elego Software Solutions GmbH
>>
>>               Gustav-Meyer-Allee
>> 25 / Gebäude 12, 13355 Berlin, Germany
>> phone: +49 30 23 45 86 96  mobile: +49 177 2345 869
>>  fax: +49 30 23 45 86 95
>>   http://www.elegosoft.com
>> | Geschäftsführer: Olaf Wagner | Sitz: Berlin
>> Handelregister: Amtsgericht Charlottenburg HRB 77719 |
>> USt-IdNr: DE163214194
>>
>>
>>
>
>
>




More information about the M3devel mailing list