#1829: Recent changes impeded building and testing on smaller boxes
---------------------+------------------------------------------------------
 Reporter:  jkeenan  |        Owner:          
     Type:  bug      |       Status:  reopened
 Priority:  normal   |    Milestone:          
Component:  build    |      Version:  2.8.0   
 Severity:  medium   |   Resolution:          
 Keywords:           |         Lang:          
    Patch:           |     Platform:          
---------------------+------------------------------------------------------
Changes (by jkeenan):

 * cc: cotto, bacek (added)


Comment:

 Replying to [comment:5 jkeenan]:

 This morning I reported that after upping to get
 ''config/gen/platform/darwin/sysmem.c'', I was getting thie error:
 {{{
 > src/string/api.c:702: failed assertion 'encoding'
 > make: *** [runtime/parrot/include/config.fpmc] Error 134
 }}}
 I also reported that earlier in the build, I got this warning:
 {{{
 > config/gen/platform/darwin/sysmem.c:38: warning: no previous prototype
 >   for 'Parrot_sysmem_amount'
 }}}
 I didn't know whether the latter was related to the former.

 I'm now persuaded that there is a connection.  First, I am '''not'''
 getting any `no previous prototype` warning in this part of my build log
 on Linux/i386.

 Second, I've had a closer look at the code cited in the failure message on
 Darwin.  Here is the relevant part of ''src/string/api.c'':
 {{{
  695 PARROT_EXPORT
  696 PARROT_WARN_UNUSED_RESULT
  697 PARROT_CANNOT_RETURN_NULL
  698 STRING *
  699 Parrot_str_new_init(PARROT_INTERP, ARGIN_NULLOK(const char *buffer),
 UINTVAL len,
  700         ARGIN(const STR_VTABLE *encoding), UINTVAL flags)
  701 {
  702     ASSERT_ARGS(Parrot_str_new_init)
  703     DECL_CONST_CAST;
  704     STRING * const s = Parrot_gc_new_string_header(interp, flags);
  705     s->encoding      = encoding;
  706
  707     if (flags & PObj_external_FLAG) {
 }}}
 Note that line 702 is the start of a function block which contains a call
 to `Parrot_gc_new_string_header` -- a GC-related function.

 Here's the definition of `Parrot_gc_new_string_header` in
 ''src/gc/api.c'':
 {{{
  339 PARROT_CANNOT_RETURN_NULL
  340 PARROT_WARN_UNUSED_RESULT
  341 STRING *
  342 Parrot_gc_new_string_header(PARROT_INTERP, UINTVAL flags)
  343 {
  344     ASSERT_ARGS(Parrot_gc_new_string_header)
  345
  346     STRING * const string =
 interp->gc_sys->allocate_string_header(interp, flags);
  347     if (!string)
  348         Parrot_ex_throw_from_c_args(interp, NULL,
 EXCEPTION_ALLOCATION_ERROR,
  349             "Parrot VM: STRING allocation failed!\n");
  350
  351     string->strstart        = NULL;
  352     PObj_get_FLAGS(string) |=
  353         flags | PObj_is_string_FLAG | PObj_is_COWable_FLAG;
  354
  355     return string;
  356 }
 }}}
 Third, as an experiment, in ''src/gc/gc_ms2.c'' on Darwin, I reverted to
 the same hack which was enabling me to build on this box over the past two
 weeks -- i.e., to the same code that gave Rakudo such headaches on Tuesday
 of this week:
 {{{
 Index: src/gc/gc_ms2.c
 ===================================================================
 --- src/gc/gc_ms2.c     (revision 49627)
 +++ src/gc/gc_ms2.c     (working copy)
 @@ -15,7 +15,7 @@
  #include "parrot/parrot.h"
  #include "parrot/gc_api.h"
  #include "parrot/list.h"
 -#include "parrot/sysmem.h"
 +/*#include "parrot/sysmem.h" */
  #include "gc_private.h"
  #include "fixed_allocator.h"

 @@ -633,7 +633,10 @@

          /* Collect every 256M allocated. */
          /* Hardcode for now. Will be configured via CLI */
 +        /*
          self->gc_threshold = Parrot_sysmem_amount(interp) / 8;
 +        */
 +        self->gc_threshold = 16 * 1024 * 1024;
      }

      interp->gc_sys->gc_private = self;
 }}}
 After this reversion, I called `make` and Parrot successfully built.

 So I infer that while the various ''config/gen/platform/*/sysmem.c'' files
 work on ''generic'', ''win32'', etc.,
 ''config/gen/platform/darwin/sysmem.c'' is not yet doing what we need it
 to do.

 Let me add that I don't think this is just my problem.  We haven't had
 '''any''' smoke reports on Darwin on our smolder server since the 2.9.1
 release.

 Suggestions?

 Thank you very much.

 kid51

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/1829#comment:8>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to