Re: Parrot on mobile platforms?

2008-10-23 Thread Gabor Szabo
Thanks for the quick answer.
Then I have another few questions :-)

Don't you think it would be important to start working in this direction?
Maybe to try to get someone work on this or to get sponsorship
in that direction?

Gabor

On Thu, Oct 23, 2008 at 8:33 AM, chromatic [EMAIL PROTECTED] wrote:
 On Wednesday 22 October 2008 23:23:46 Gabor Szabo wrote:

 I am totally lack of relevant knowledge so I'd like to get some from you.

 There are many mobile platforms out there.
 Linux based, Symbian, Blackberry, iPhone, Windows, Palm, Android, etc..

 I wonder what are the chances of Parrot running on any of these?

 Decent, with some work.

 Has anyone tried?

 Not to my knowledge.

 What needs to be done in order to get Parrot on these devices?

 With the iPhone or Android-based phones, someone would have to crack the phone
 such that we have access to what passes for bare OS, instead of the Objective
 C/NeXT runtime or Dalvik.

 For the other platforms, we need to:

 1) Figure out a cross-compilation strategy (which means improving our
 configuration system such that it takes hints from a file, not from direct
 probes and Perl 5's Config.pm)

 2) Disable certain features (different runcores, JIT, much of NCI)

 3) Add architecture and platform-specific files for the parts of POSIX they
 don't already support

 4) Figure out an installation and execution strategy for bytecode

 5) Revisit #2, to get the installation size down further (500k for a Parrot
 binary seems like a maximum)

 -- c



Re: the future of testing

2008-01-10 Thread Gabor Szabo
On Jan 10, 2008 12:23 PM, Allison Randal [EMAIL PROTECTED] wrote:

 Aye, I would want to improve on the Python solution. But maintaining a
 config file something like:

 [darwin]
 t/pmc/foo.t 3 5-7 9 # platform doesn't support libfoo
 t/pmc/bar.t 1 42
 ...

 [MSWin32]
 t/pmc/foo.t 32
 ...

This seems to be too obvious to be a real question but what if someone
adds a new test
in the middle of bar.t ?
Will she have to remember to update the numbers in the central config file?

Gabor


Workshop and Hackathon in Israel

2007-10-01 Thread Gabor Szabo
Hi,

I have announced it elsewhere but I hope it is OK to do it here as well.

On 31 December 2007 we are going to have a one day Perl Workshop in
Israel http://act.perl.org.il/ilpw2007/
Following the workshop, between 1-5 January 2008 we are going to have a
Hackathon in Tel Aviv. http://act.perl.org.il/ilpw2007/hackathon.html

On the Hackathon we would like to deal with all kinds of Perl related issues
including Parrot.

I hope to see some of you on the Hackathon.

If you are interested please register on the site and add yourself to
the wiki page.
If you are coming from overseas, please do it ASAP so we'll see how many
international guests to expect.

regards
Gabor

-- 
Gabor Szabo
http://www.szabgab.com/


Re: Parrot configuration system: weaknesses and strengths

2007-09-18 Thread Gabor Szabo
I am not sure what to quote so let me reply on a clean page.

I would like to see invalid configuration options and values as being always
fatal. They indicate some kind of user error, a typo or similar that would
probably cause trouble to the Parrot developer as well as the Parrot user.

In order to archive that I wonder if it would be possible to allow two methods:

1) The individual configuration step could report an error as a return value
so the harness can decide if this particular failure is fatal or not.
2) In addition the individual configuration step could declare a fatal error
(e.g. by die-ing) that would be respected by the harness and reported
as fatal.

Gabor


Re: [PATCH] don't allow invalid --gc options

2007-09-03 Thread Gabor Szabo
On 9/3/07, Andy Dougherty [EMAIL PROTECTED] wrote:
 On Sat, 1 Sep 2007, Gabor Szabo wrote:

  It has biten me so let's make sure invalid --gc options are not allowed.

 But what if I want to work on --gc=libc?  How can I override this?

I am not sure I understand you.
If you want to work on --gc=libc then you shuold put just that on the
command line, it is a valid option.

You should not make a mistake as I did, giving  --gc-libgc as that
would silently fall back to --gc=gc

Gabor


Re: [perl #45137] [TODO] Add a revision control test in Configure.pl

2007-09-03 Thread Gabor Szabo
Can someone explain, please why are there tests that need a version
control system? It sounds strange to me.

Gabor


On 9/3/07, via RT Paul Cochrane [EMAIL PROTECTED] wrote:
 # New Ticket Created by  Paul Cochrane
 # Please include the string:  [perl #45137]
 # in the subject line of all future correspondence about this issue.
 # URL: http://rt.perl.org/rt3/Ticket/Display.html?id=45137 


 Many tests in the Parrot test suite check for the existence of a given
 revision control system (e.g. svn/svk/git) before determining if the
 test should be run.  This can be done just the once at Configure time;
 the tests can then probe the result.  A new configure step will need
 to be added, and then any tests containing direct tests of the
 existence of svn/svk/git will need to be changed to probe for the
 relevant result.



Re: Build Farm

2007-09-01 Thread Gabor Szabo
Hi David,

if non of the core Parrot developers answer you then let me,
the newcomer do so.

Recently I have been involved in a little research where I was looking
at various automatic build and test smoking systems. Among others
I looked at the PostgreSQL build farm as well.
See my blog entries:
http://www.szabgab.com/blog/2007/07/1183825266.html

I liked it very much though I have some issues that I think should be
improved there too.

Regarding Parrot, I think there was some discussion of moving it to use
TAP::Harness and to use Smolder to collect the TAP based results.

I am quite in favor of having something like the PostgreSQL build farm
integrated with TAP::Parser and possibly Smolder and adding some other
features as well. So I'd be glad to participate in your project and help
making sure that the all the needs of the Parrot team are
addressed.

Gabor



On 8/30/07, David Fetter [EMAIL PROTECTED] wrote:
 Folks,

 I'm working on generalizing PostgreSQL's buildfarm code
 http://www.pgbuildfarm.org/, an automated build and test system, and
 of course I thought of Parrot.

 The requirements are very light:

 * Disk space for the source code and build
 * Connectivity to the internet via HTTP or HTTPS
 * Some way (cron, e.g.) to run jobs regularly
 * Some way to get regular updates to one or more branches of the
   source code

 Would people here be interested in running clients on various
 architectures, OSs, compilers, etc.?  What kinds of things would you
 like to see in a status overview page like this one:
 http://www.pgbuildfarm.org/cgi-bin/show_status.pl  How about in
 detailed build reports?

 Cheers,
 David.
 --
 David Fetter [EMAIL PROTECTED] http://fetter.org/
 phone: +1 415 235 3778AIM: dfetter666
   Skype: davidfetter

 Remember to vote!
 Consider donating to PostgreSQL: http://www.postgresql.org/about/donate



-- 
Gabor Szabo
http://www.szabgab.com/


Re: [PATCH] don't allow invalid --gc options

2007-09-01 Thread Gabor Szabo
On 9/1/07, James E Keenan [EMAIL PROTECTED] wrote:
 (Gabor:  You didn't cc: the list on this, so I'm replying directly to
 you.  But I think the issues you are raising merit discussion on the
 list.  So please feel free to copy what I write below to the list.)

Sure, I meant to send it to the list actually.
It seems the beer from YAPC::EU still have not fully settled down..


 On Sep 1, 2007, at 12:35 PM, Gabor Szabo wrote:

  Thanks for the pointers, I was not sure where to add this.
 
  On 9/1/07, James E Keenan [EMAIL PROTECTED] wrote:
  2.  Modify config/auto/gc.pm to have configuration step auto::gc
  fail if
  any invalid option is provided.  (I did a quick grep on config/
  and this
  is the only place I saw the 'gc' option handled -- but I might have
  gotten confused by the many instances of 'gcc'.)  A statement
  along the
  lines of 'return unless $gc =~ /list|of|valid|options/;' around
  line 62
  of that package would probably be the way to go.
 
  The problem is that if I place a return;  in the function you
  recommended
  the configuration process displays a small error message, then
  a bigger unrelated one (at least unrelated from the point of view
  of the
  user running it) , creates the Makefile and exit()s with exit value 0
  meaning success.
  It also suggests to type in 'make' to build Parrot.
 
  Even if I croak() in that function, the same happens.
 

 I understand your point -- but it's a much larger point than the
 permissible values for the --gc option.  Read on.

  IMHO if a user supplies an invalid option (to --gc or any other
  parameter)
  an appropriate error message should be printed, the configuration
  process
  should be halted and exit() should indicate failure.

 All of the (currently) 58 Parrot configuration steps are set up to
 return undef on failure.  But Parrot::Configure::runsteps() is set up
 as a harness that reports failures in individual steps/tasks but
 nonetheless tries to keep going forward.  It does nothing with the
 return value of a particular step.

 #
 sub runsteps {
  my $conf = shift;

  my $n = 0;# step number
  my ( $verbose, $verbose_step, $ask ) =
  $conf-options-get( qw( verbose verbose-step ask ) );

  foreach my $task ( $conf-steps ) {
  $n++;
  $conf-_run_this_step( {
  task= $task,
  verbose = $verbose,
  verbose_step= $verbose_step,
  ask = $ask,
  n   = $n,
  } );
  }
  return 1;
 }
 #

 Whether that's what it ideally *should* be doing is a valid
 question.  But in the refactoring/testing work I've been doing on it
 in recent months, I've viewed it as my mandate to preserve its
 current functioning unless there's a strong consensus that change is
 needed.

 Some might argue, If you're foolish enough to continue on to 'make'
 when your configuration process is spewing error messages, you get
 what you deserve.  That's in effect what happens now.

 Another alternative would be to note whether any of the configuration
 steps fails, then change the message which
 Parrot::Configure::Messages::print_conclusion() prints after all the
 configuration steps complete.

At this point I really don't want to get involved any deeper in the development
and I am sure you will clean this up later so I'll try to send a patch according
to what you wrote.

One thing though, I think it would be really good if at least the exit code of
the script would be something different from 0 when any of the steps failed.

That will be very important when we try to integrate with the PG Build Farm
or any other fully automated smoke test suite to make sure we won't go on
when the configuration step fails.

Gabor


[PATCH] don't allow invalid --gc options (2nd try)

2007-09-01 Thread Gabor Szabo
Index: config/auto/gc.pm
===
--- config/auto/gc.pm   (revision 20963)
+++ config/auto/gc.pm   (working copy)
@@ -107,7 +107,7 @@
 gc_flag   = '-DGC_IS_MALLOC',
 );
 }
-else {
+elsif ( $gc eq 'gc' ) {
 $gc = 'gc';
 $conf-data-set(
 TEMP_gc_c = EOF,
@@ -116,7 +116,11 @@
 TEMP_gc_o = \$(SRC_DIR)/gc/resources\$(O),
 gc_flag   = '',
 );
-}
+} else {
+print STDERR Inavlid value '$gc' for the --gc option\n;
+return;
+}
+
 print( ($gc) ) if $conf-options-get('verbose');

 return $self;


perl Configure.pl --gc=malloc does not build either

2007-08-31 Thread Gabor Szabo
gcc --version
gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)


perl Configure.pl --gc=malloc
make

this is the STDERR:

[...]
newpdd15class_p_s 1254   experimental, not in ops.num
newpdd15class_p_sc1255   experimental, not in ops.num
newpdd15class_p_p 1256   experimental, not in ops.num
newpdd15class_p_pc1257   experimental, not in ops.num
setstdout_p  SKIPPED: not in ops.num nor ops.skip
setstderr_p  SKIPPED: not in ops.num nor ops.skip
hash_i_p SKIPPED: not in ops.num nor ops.skip
src/exceptions.c: In function ‘do_panic’:
src/exceptions.c:152: warning: ‘noreturn’ function does return
src/gc/dod.c: In function ‘clear_cow’:
src/gc/dod.c:471: warning: request for implicit conversion from
‘void *’ to ‘struct Buffer *’ not permitted in C++
src/gc/dod.c: In function ‘used_cow’:
src/gc/dod.c:512: warning: request for implicit conversion from
‘void *’ to ‘const struct Buffer *’ not permitted in C++
src/gc/dod.c:530: warning: cast discards qualifiers from pointer target type
src/library.c: In function ‘Parrot_locate_runtime_file_str’:
src/library.c:442: warning: ignoring return value of
‘Parrot_get_runtime_prefix’, declared with attribute
warn_unused_result
src/packfile.c: In function ‘Parrot_load_bytecode’:
src/packfile.c:3388: warning: ignoring return value of
‘PackFile_append_pbc’, declared with attribute warn_unused_result
src/pmc_freeze.c: In function ‘push_opcode_number’:
src/pmc_freeze.c:627: warning: ignoring return value of
‘PF_store_number’, declared with attribute warn_unused_result
src/pmc_freeze.c: In function ‘push_opcode_string’:
src/pmc_freeze.c:648: warning: ignoring return value of
‘PF_store_string’, declared with attribute warn_unused_result
src/spf_render.c: In function ‘handle_flags’:
src/spf_render.c:179: warning: ignoring return value of
‘string_substr’, declared with attribute warn_unused_result
src/spf_render.c: In function ‘Parrot_sprintf_format’:
src/spf_render.c:294: warning: ignoring return value of
‘string_substr’, declared with attribute warn_unused_result
src/spf_render.c:807: warning: ignoring return value of
‘string_substr’, declared with attribute warn_unused_result
src/stack_common.c: In function ‘register_new_stack’:
src/stack_common.c:57: warning: ignoring return value of
‘make_bufferlike_pool’, declared with attribute warn_unused_result
src/stm/backend.c: In function ‘Parrot_STM_alloc’:
src/stm/backend.c:216: warning: ignoring return value of
‘make_bufferlike_pool’, declared with attribute warn_unused_result
In file included from src/exec.c:26:
src/jit_emit.h: In function ‘div_rr_n’:
src/jit_emit.h:1720: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘mod_rr_n’:
src/jit_emit.h:1759: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘opt_div_rr’:
src/jit_emit.h:1953: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘Parrot_emit_jump_to_eax’:
src/jit_emit.h:2202: warning: cast from function call of type ‘int
*’ to non-matching type ‘long int’
In file included from src/exec_cpu.c:51:
src/jit_emit.h: In function ‘div_rr_n’:
src/jit_emit.h:1720: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘mod_rr_n’:
src/jit_emit.h:1759: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘opt_div_rr’:
src/jit_emit.h:1953: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘Parrot_emit_jump_to_eax’:
src/jit_emit.h:2202: warning: cast from function call of type ‘int
*’ to non-matching type ‘long int’
In file included from src/jit.c:35:
src/jit_emit.h: In function ‘div_rr_n’:
src/jit_emit.h:1720: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘mod_rr_n’:
src/jit_emit.h:1759: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘opt_div_rr’:
src/jit_emit.h:1953: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘Parrot_emit_jump_to_eax’:
src/jit_emit.h:2202: warning: cast from function call of type ‘int
*’ to non-matching type ‘long int’
In file included from src/jit_cpu.c:51:
src/jit_emit.h: In function ‘div_rr_n’:
src/jit_emit.h:1720: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘mod_rr_n’:
src/jit_emit.h:1759: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘opt_div_rr’:
src/jit_emit.h:1953: warning: cast discards qualifiers from pointer target type
src/jit_emit.h: In function ‘Parrot_emit_jump_to_eax’:
src/jit_emit.h:2202: warning: cast from function call of type ‘int
*’ to 

build error

2007-08-30 Thread Gabor Szabo
I am experimenting a bit with the compilation of Parrot

perl Configure.pl --gc=malloc-trace
make

stopped with:

src/malloc.c:4719: warning: function call has aggregate value
make: *** [src/malloc-trace.o] Error 1

below is the stderr

  Gabor

print_newline 1211   experimental, not in ops.num
print_newline_p   1211   experimental, not in ops.num
gcd_i_n_n 1212   experimental, not in ops.num
gcd_i_nc_n1213   experimental, not in ops.num
gcd_i_n_nc1214   experimental, not in ops.num
gcd_i_nc_nc   1215   experimental, not in ops.num
gcd_i_i_i_i_i 1216   experimental, not in ops.num
gcd_i_i_i_ic_i1217   experimental, not in ops.num
gcd_i_i_i_i_ic1218   experimental, not in ops.num
gcd_i_i_i_ic_ic   1219   experimental, not in ops.num
splice_p_p_i_i1220   experimental, not in ops.num
splice_p_p_ic_i   1221   experimental, not in ops.num
splice_p_p_i_ic   1222   experimental, not in ops.num
splice_p_p_ic_ic  1223   experimental, not in ops.num
slice_p_p_k   1224   experimental, not in ops.num
slice_p_p_kc  1225   experimental, not in ops.num
slice_p_p_k_ic1226   experimental, not in ops.num
slice_p_p_kc_ic   1227   experimental, not in ops.num
iter_p_p  1228   experimental, not in ops.num
morph_p_i 1229   experimental, not in ops.num
morph_p_ic1230   experimental, not in ops.num
exec_s1231   experimental, not in ops.num
exec_sc   1232   experimental, not in ops.num
classname_p_p 1233   experimental, not in ops.num
trap  1234   experimental, not in ops.num
pow_n_n_i 1235   experimental, not in ops.num
pow_n_nc_i1236   experimental, not in ops.num
pow_n_n_ic1237   experimental, not in ops.num
pow_n_nc_ic   1238   experimental, not in ops.num
getclass_p_i  1239   experimental, not in ops.num
getclass_p_ic 1240   experimental, not in ops.num
new_p_i_s 1241   experimental, not in ops.num
new_p_ic_s1242   experimental, not in ops.num
new_p_i_sc1243   experimental, not in ops.num
new_p_ic_sc   1244   experimental, not in ops.num
instantiate_p 1245   experimental, not in ops.num
pmcinfo_i_p_ic1246   experimental, not in ops.num
new_p_p   1247   experimental, not in ops.num
new_p_p_p 1248   experimental, not in ops.num
new_p_p_pc1249   experimental, not in ops.num
add_io_event_p_p_p_ic 1250   experimental, not in ops.num
need_finalize_p   1251   experimental, not in ops.num
runinterp_p_p 1252   experimental, not in ops.num
runinterp_p_pc1253   experimental, not in ops.num
newpdd15class_p_s 1254   experimental, not in ops.num
newpdd15class_p_sc1255   experimental, not in ops.num
newpdd15class_p_p 1256   experimental, not in ops.num
newpdd15class_p_pc1257   experimental, not in ops.num
setstdout_p  SKIPPED: not in ops.num nor ops.skip
setstderr_p  SKIPPED: not in ops.num nor ops.skip
hash_i_p SKIPPED: not in ops.num nor ops.skip
src/exceptions.c: In function ‘do_panic’:
src/exceptions.c:152: warning: ‘noreturn’ function does return
src/gc/dod.c: In function ‘clear_cow’:
src/gc/dod.c:471: warning: request for implicit conversion from
‘void *’ to ‘struct Buffer *’ not permitted in C++
src/gc/dod.c: In function ‘used_cow’:
src/gc/dod.c:512: warning: request for implicit conversion from
‘void *’ to ‘const struct Buffer *’ not permitted in C++
src/gc/dod.c:530: warning: cast discards qualifiers from pointer target type
src/library.c: In function ‘Parrot_locate_runtime_file_str’:
src/library.c:442: warning: ignoring return value of
‘Parrot_get_runtime_prefix’, declared with attribute
warn_unused_result
src/packfile.c: In function ‘Parrot_load_bytecode’:
src/packfile.c:3388: warning: ignoring return value of
‘PackFile_append_pbc’, declared with attribute warn_unused_result
src/pmc_freeze.c: In function ‘push_opcode_number’:
src/pmc_freeze.c:627: warning: ignoring return value of
‘PF_store_number’, declared with attribute warn_unused_result
src/pmc_freeze.c: In function ‘push_opcode_string’:
src/pmc_freeze.c:648: warning: ignoring return value of
‘PF_store_string’, declared with attribute warn_unused_result
src/spf_render.c: In function ‘handle_flags’:
src/spf_render.c:179: warning: ignoring return value 

Re: build error

2007-08-30 Thread Gabor Szabo
On 8/30/07, chromatic [EMAIL PROTECTED] wrote:

 What's your platform?  Which compiler are you using?

sorry. this was my third attempt to post this report. I might have forgotten
to include this information:

gcc --version
gcc (GCC) 4.1.2 (Ubuntu 4.1.2-0ubuntu4)

uname -a
Linux notebook 2.6.20-16-generic #2 SMP Thu Jun 7 20:19:32 UTC 2007
i686 GNU/Linux

Gabor
ps. the previous attempt to post were rejected with the error about possible
Hi virus. Even though it seems the problem was that I tried to attach the
stderr file.