Re: open issue review (easy stuff)
On Tuesday, January 20, 2004, at 06:03 PM, Robert Spier wrote: If you respond to this message, with the ticket id and brief reason why it can be closed, i.e. "patch applied", "patch rejected", "bad idea".. I'll do the labor of updating the ticketing system. -R 18044: Assembler doesn't return a useful exit status assemble.pl is dead - original issue resolved, followup sent, though we still don't return on bad usage as the follow up poster requested. 19670: [PASM] bug in i/o (read on stdin) Sent followup via RT - still can't get unbuffered STDIN, though the main issue is resolved. 20666: Assemble.pl Reports Incorrect Line Numbers after Removal of Macros assemble.pl is dead. 21729: IMCC doesn't handle scientific notation constants The thrust was "assemble.pl" supports them, imcc doesn't, but they should agree. Since assemble.pl is dead, the question is moot, IMCC notation wins. (no followup sent.) 22183: imcc doesn't support \e Yes it does. (patch was applied but never closed) (no followup sent) 22521: IMCC causes seegfault with many perlarrays and perlhashes 22617: IMCC duplicate labels in different subs cause wrong branch Leo fixed these, but they were never closed 22718: core function index() returns -1 when search string contains spaces This appears to be fixed. 22922: Parrot threading! This wasn't really a bug. More of a question that Dan seems to have answered. 22995: [PATCH] op cmp INT STR STR Dan applied this, never closed. 23299: Dynamic type handling in IMCC There is a very long discussion which appears to be rendered academic by the fact that the poster's original code now works (presuming you add the missing "end" as the last opcode.) ... and then I got bored. -- Will "Coke" Coledawill at coleda dot com
Re: [perl #27336] [PATCH] Typo in library/dumper.imc
On Tue, 2004-03-02 at 21:54, Will Coleda wrote: > Minor typo in library/dumper.imc for unknown pmcs Thanks, applied. -- c
Re: www.parrotcode.org/ points to 0.0.10
As promised. The "new" site is now live. -R > > This is on my list for tonight. I've got something all ready to go > but have been busy with a $NEW_JOB. > > -R > > At Tue, 2 Mar 2004 00:44:02 -0500, > Mitchell N Charity wrote: > > > > The parrot homepage > > http://www.parrotcode.org/ > > currently says > > Periodic releases will appear on CPAN; the current release is > > version 0.0.10, and can be found in the CPAN source directory. > > And "source directory" is a link to parrot-0.0.10.tar.gz
[perl #27336] [PATCH] Typo in library/dumper.imc
# New Ticket Created by Will Coleda # Please include the string: [perl #27336] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=27336 > Minor typo in library/dumper.imc for unknown pmcs dumper.diff Description: Binary data -- Will "Coke" Coledawill at coleda dot com
Re: [perl #27301] [PATCH] \t\pmc\exec.t Tests spawnw opcode
Nigel Sandever wrote: > If my lack of experience with OSS/unix makes my willingness to > contribute to the project unviable, then a simple statement; "stop > bothering us" will stop me wasting your time and mine. If I may, most of the US East Coast is settling down for bed right now, and most of the West Coast is having dinner. I would guess that people just haven't noticed your post yet. The patch looks okay to me, but I've been out of the loop so long that I'm as likely to be wrong as right. :^) In my experience, these guys don't discriminate based on either Unix experience or open-source experience--when I submitted my first patches, I'd never sat at a Unix workstation or server, submitted code to another Open Source project, or even written C. (C++, yes, but not C.) -- Brent "Dax" Royal-Gordon <[EMAIL PROTECTED]> Perl and Parrot hacker Oceania has always been at war with Eastasia.
[PATCH] native exec support on win32
Attached patch adds native exec support for win32's COFF format .o files. I had to change some code that assumed the bytecode being used was from the interpreter->code->src block, which wasn't the case when it's not being mmaped. __ Do you Yahoo!? Yahoo! Search - Find what youre looking for faster http://search.yahoo.com--- build_tools/jit2h.pl~ Tue Feb 10 01:38:56 2004 +++ build_tools/jit2h.plTue Mar 2 16:08:04 2004 @@ -177,7 +177,7 @@ # The ->u.(string|float) is unnecessary. $asm =~ s/\)->u\.(\w+)/)/g; $asm =~ s/CONST\((\d)\)\s*([><=!]=?)\s*CONST\((\d)\)/RCONST($1)->u.number $2 RCONST($3)->u.number/ if ($asm =~ /CONST.*CONST/); -$asm =~ s/(jit_emit_mov_([mr]i_ni).*)&jit_info->cur_op\[(\d)\]\);/$1(int)&jit_info->cur_op[$3] - (int)interpreter->code->src);\n\tParrot_exec_add_text_rellocation(jit_info->objfile, NULL, RTYPE_DATA, "program_code", 0);/g; +$asm =~ s/(jit_emit_mov_([mr]i_ni).*)&jit_info->cur_op\[(\d)\]\);/$1(int)&jit_info->cur_op[$3] - (int)interpreter->code->cur_cs->base.data + jit_info->objfile->bytecode_header_size);\n\tParrot_exec_add_text_rellocation(jit_info->objfile, NULL, RTYPE_DATA, "program_code", 0);/g; $asm =~ s/(\n(\s*)[^\n]*((rm|mr|mi|ri)_(ni|n|i))[^\n]*[INSP]REG[^\n]*)/$1\n$2Parrot_exec_add_text_rellocation(jit_info->objfile, NULL, RTYPE_COM, "interpre", 0);/g; $asm =~ s/(\n(\s*)[^\n]*((rm|mr|mi|ri)_(ni|n|i))[^\n]*CONST[^\n]*)/$1\n$2Parrot_exec_add_text_rellocation(jit_info->objfile, NULL, RTYPE_DATA, "const_table", 0);/g; $asm =~ s/(\\\n\s*Parrot_exec_add_text_rellocation[^\n]*)/$1\\/g; @@ -291,7 +291,7 @@ #define NREG(i) EXR(num_reg.registers, jit_info->cur_op[i] * sizeof(FLOATVAL)) #define PREG(i) EXR(pmc_reg.registers, jit_info->cur_op[i] * sizeof(PMC *)) #define SREG(i) EXR(string_reg.registers, jit_info->cur_op[i] * sizeof(STRING *)) -#define CONST(i) (int *)(jit_info->cur_op[i] * sizeof(struct PackFile_Constant) + 4) +#define CONST(i) (int *)(jit_info->cur_op[i] * sizeof(struct PackFile_Constant) + offsetof(struct PackFile_Constant, u)) #define RCONST(i) interpreter->code->const_table->constants[jit_info->cur_op[i]] #define CALL(f) Parrot_exec_add_text_rellocation_func(jit_info->objfile, jit_info->native_ptr, f); \\ emitm_calll(jit_info->native_ptr, EXEC_CALLDISP); --- config/auto/jit.pl~ Wed Feb 25 21:15:50 2004 +++ config/auto/jit.pl Sat Feb 28 10:14:02 2004 @@ -124,14 +124,15 @@ jit_o => '$(SRC)/jit$(O) $(SRC)/jit_cpu$(O) $(SRC)/jit_debug$(O) $(SRC)/jit_debug_xcoff$(O)' ); -if (($jitcpuarch eq 'i386' && ($osname =~ /bsd$/i || $osname =~ /linux/i)) +if (($jitcpuarch eq 'i386') || ($jitcpuarch eq 'ppc') || ($jitcpuarch eq 'arm')) { $execcapable = 1; unless (($osname eq 'openbsd') || ($osname eq 'freebsd') || ($osname eq 'netbsd') || ($osname eq 'linux') || - ($osname eq 'darwin')) + ($osname eq 'darwin') || + ($osname eq 'MSWin32')) { $execcapable = 0; } --- include/parrot/exec.h~ Mon Dec 1 13:22:22 2003 +++ include/parrot/exec.h Wed Feb 29 17:13:42 2004 @@ -28,9 +28,14 @@ # if (PARROT_EXEC_OS_FREEBSD) || (PARROT_EXEC_OS_NETBSD) || (PARROT_EXEC_OS_LINUX) # define EXEC_ELF # endif +# if PARROT_EXEC_OS_MSWIN32 +# define EXEC_COFF +# endif # ifdef EXEC_A_OUT #define EXEC_CALLDISP jit_info->arena.start - jit_info->native_ptr - 4 +# elif defined(EXEC_COFF) +#define EXEC_CALLDISP 0 # else #define EXEC_CALLDISP 0xfffc # endif --- jit/i386/jit_emit.h~Thu Jan 8 08:20:40 2004 +++ jit/i386/jit_emit.h Tue Mar 2 16:09:24 2004 @@ -1897,7 +1897,8 @@ #define PREG(i) EXR(pmc_reg.registers, i * sizeof(PMC *)) #define SREG(i) EXR(string_reg.registers, i * sizeof(STRING *)) #define CONST(i) (int *)(jit_info->cur_op[i] * \ - sizeof(struct PackFile_Constant) + 4) + sizeof(struct PackFile_Constant) + \ + offsetof(struct PackFile_Constant, u)) #define CALL(f) Parrot_exec_add_text_rellocation_func(jit_info->objfile, \ jit_info->native_ptr, f); \ --- src/exec_save.c~Mon Jan 26 15:16:06 2004 +++ src/exec_save.c Tue Mar 2 17:23:14 2004 @@ -572,6 +572,133 @@ #endif /* EXEC_MACH_O */ +#ifdef EXEC_COFF + +/* File offsets */ +#define TEXT_CODE 0x14 + (3 * 0x28) +#define DATA_CODE TEXT_CODE + obj->text.size +#define TEXT_RELOC DATA_CODE + obj->data.size +#define DATA_RELOC TEXT_RELOC + (obj->text_rellocation_count * 0xA) +#define SYMTAB DATA_RELOC + (obj->data_rellocation_count * 0xA) + +void +Parrot_exec_save(Parrot_exec_objfile_t *obj, const char *file) +{ +FILE *fp; +int i; + +fp = fopen(file, "wb"); + +save_short(fp, 0x14C); /* i386 */ +save_short(fp, 3); /* Number of sections */
Re: Tetris example (was: Please no checkins)
At 5:13 PM +0100 3/2/04, Leopold Toetsch wrote: Parrot's object support is not yet good enough to be able to convert the game to use ParrotObjects. What is missing? Constructors and destructors are my two big guesses here. :-P -- Dan --"it's like this"--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Re: [perl #27301] [PATCH] \t\pmc\exec.t Tests spawnw opcode
On Tue, 02 Mar 2004 02:31:47 -0800, [EMAIL PROTECTED] (Nigelsandever @ Btconnect . Com) wrote: > =_1078223508-4945-0 > Content-Type: text/plain; charset="utf-8" > > # New Ticket Created by [EMAIL PROTECTED] > # Please include the string: [perl #27301] > # in the subject line of all future correspondence about this issue. > # http://rt.perl.org:80/rt3/Ticket/Display.html?id=27301 > > > > Does the naming and placement of this test fit convention? > > The opcode is called 'spawnw' > The function is 'Parrot_Run_OS_Command' > The file 'config/gen/platform/*/exec.c' > > A little guidance would help occasionally. > If it were forthcoming, I would try to write them up into a beginners FAQ. > > > =_1078223508-4945-0-- If this patch is no good, would someone point out what is wrong with it, or where in the documentation I should be looking for this guidance? If my lack of experience with OSS/unix makes my willingness to contribute to the project unviable, then a simple statement; "stop bothering us" will stop me wasting your time and mine.
Re: [PATCH] parrotbug 0.0.1
At 9:24 PM -0800 3/1/04, Robert Spier wrote: - I'm not sure about the reporting address (Robert, I need your advice on this one) I suppose, it should be something like parrotbugparrotcode.org Anyone else want to brainstorm bug addresses for parrot? Since we need a new system to handle ok/nok/full bug reports, how 'bout we add in: parrotstatus-ok parrotstatus-nok parrotbug all @parrotcode.org. The first for automated OK reports, the second for automated nok reports, and the third for actual bug reports. -- Dan --"it's like this"--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Re: [PATCH] parrotbug 0.0.1
At 8:57 AM +0100 3/2/04, Leopold Toetsch wrote: Jerome Quelin <[EMAIL PROTECTED]> wrote: - the copyright is missing (Dan, please insert correct copyright) All in parrot root is subject to terms in LICENSES. Copyright notices still should be in the individual files. -- Dan --"it's like this"--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Re: Current PLATFORMS
Index: PLATFORMS === RCS file: /cvs/public/parrot/PLATFORMS,v retrieving revision 1.15 diff -u -t -u -r1.15 PLATFORMS --- PLATFORMS 1 Mar 2004 08:48:13 - 1.15 +++ PLATFORMS 2 Mar 2004 01:08:49 - @@ -18,6 +18,7 @@ linux-sparc-gcc3.3.3BY-- Y Y Y Y linux-sparc64-gcc3.3.3 B8 Y-- - - Y - linux-x86-gcc2.95.2 YYY Y Y Y Y +linux-x86-gcc3.2.3 YYY Y Y Y Y linux-x86-gcc3.3.3 YYY Y Y Y Y linux-x86-gcc3.3.3 *3YYY Y Y Y Y*3 linux-x86-icc8 YYY Y Y Y Y Index: t/pmc/signal.t === RCS file: /cvs/public/parrot/t/pmc/signal.t,v retrieving revision 1.4 diff -u -t -u -r1.4 signal.t --- t/pmc/signal.t 28 Feb 2004 12:02:21 - 1.4 +++ t/pmc/signal.t 2 Mar 2004 01:08:56 - @@ -41,7 +41,7 @@ sub send_SIGINT { $SIG{ALRM} = sub { # get PID of parrot -my @ps = `ps | grep [p]arrot`; +my @ps = `ps -C parrot -o pid`; die 'no output from ps' unless @ps; # the IO thread parrot process # on 2.2.x there are 4 processes, last is the IO thread
NetBSD 1.6 - need to define _STRUCT_TIMESPEC
If to define _STRUCT_TIMESPEC, then compilation is successfully. % make test perl t/harness --gc-debug --running-make-test -b t/op/*.t t/pmc/*.t t/native_pbc/*.t imcc/t/*/*.t t/src/*.t t/op/00ff-dos...ok t/op/00ff-unix..ok t/op/arithmeticsok t/op/basic..ok t/op/bitwiseok t/op/callingok t/op/comp...ok t/op/conv...ok t/op/debuginfo..ok 3/3 skipped: getline/setline changes not finished t/op/gc.ok t/op/globalsok t/op/hacks..ok 2/2 skipped: various reasons t/op/ifunless...ok t/op/info...ok t/op/integerok t/op/interp.ok t/op/jitok t/op/jitn...ok t/op/lexicals...ok t/op/macro..ok 1/16 skipped: various reasons t/op/number.ok t/op/rx.ok 1/23 skipped: various reasons t/op/stacks.ok t/op/string.ok t/op/time...ok t/op/trans..ok t/op/types..ok t/pmc/array.ok t/pmc/boolean...ok t/pmc/coroutine.ok t/pmc/delegate..ok t/pmc/dumperok t/pmc/env...ok t/pmc/eval..ok t/pmc/exception.ok t/pmc/float.ok t/pmc/freezeok t/pmc/intlist...ok t/pmc/iook 1/21 skipped: various reasons t/pmc/iter..ok 1/9 skipped: various reasons t/pmc/key...ok t/pmc/managedstruct.ok t/pmc/mmd...ok t/pmc/multiarrayok t/pmc/nci...i386 JIT CPU .so SO extension t/pmc/nci...ok 29/29 skipped: various reasons t/pmc/object-meths..ok t/pmc/objects...ok t/pmc/orderedhash...ok t/pmc/perlarray.ok t/pmc/perlhash..ok t/pmc/perlint...ok t/pmc/perlnum...ok t/pmc/perlstringok t/pmc/pmc...ok t/pmc/prop..ok t/pmc/ref...ok t/pmc/sarrayok t/pmc/scratchpadok t/pmc/signalskipped all skipped: No events yet t/pmc/sort..ok t/pmc/sub...ok t/pmc/threads...skipped all skipped: No threading yet or test not enabled for 'netbsd' t/pmc/timer.ok 5/7 skipped: various reasons t/pmc/tqueueok t/native_pbc/integerok t/native_pbc/number.ok imcc/t/imcpasm/cfg..ok imcc/t/imcpasm/opt0.ok imcc/t/imcpasm/opt1.ok 1/49 skipped: various reasons imcc/t/imcpasm/opt2.ok 5/5 skipped: various reasons imcc/t/imcpasm/optc.ok 6/6 skipped: various reasons imcc/t/imcpasm/pcc..ok 10/10 skipped: various reasons imcc/t/imcpasm/sub..ok imcc/t/reg/spillok imcc/t/syn/bsr..ok imcc/t/syn/clashok imcc/t/syn/constok imcc/t/syn/eval.ok imcc/t/syn/file.ok 1/12 skipped: various reasons imcc/t/syn/keyedok imcc/t/syn/labels...ok imcc/t/syn/macrook imcc/t/syn/namespaceok imcc/t/syn/pcc..ok 2/31 skipped: various reasons imcc/t/syn/pod..ok imcc/t/syn/scopeok t/src/basic.ok t/src/exit..ok t/src/extendok t/src/hash..ok t/src/intlist...ok t/src/iook 1/20 skipped: various reasons t/src/list..ok t/src/manifest..ok t/src/sprintf...ok All tests successful, 2 tests and 69 subtests skipped. Files=95, Tests=1370, 293 wallclock secs (30.29 cusr + 15.31 csys = 45.60 CPU) % make testexec echo 'print "Hello World\n"' > hello.pasm echo 'end' >> hello.pasm ./parrot -o hello.pbc hello.pasm ./parrot -o hello.o hello.pbc make EXEC=hello exec /house/kostirya/parrot/src/exec_start.c cc -o hello -Wl,-R/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib -Wl,-rpath,/usr/local/lib -L/usr/pkg/lib -g hello.o src/exec_start.o blib/lib/libparrot.a -lm -lcrypt ./hello Hello World %
Re: www.parrotcode.org/ points to 0.0.10
This is on my list for tonight. I've got something all ready to go but have been busy with a $NEW_JOB. -R At Tue, 2 Mar 2004 00:44:02 -0500, Mitchell N Charity wrote: > > The parrot homepage > http://www.parrotcode.org/ > currently says > Periodic releases will appear on CPAN; the current release is > version 0.0.10, and can be found in the CPAN source directory. > And "source directory" is a link to parrot-0.0.10.tar.gz > > The similarity in release numbers is particularly unfortunate. > > Sorry I missed that when looking at the page. (Saw "source directory", > thought "ah, users will see the more recent releases in the directory"). > > Updating the homepage soon would seem desirable. > > Mitchell
A good news/bad news sort of thing
The good news is that the infrastructure's in place to do delegated method calls for vtable functions with objects. So you can actually do something like: .sub __MAIN prototyped .param pmc argv .local pmc foo .local pmc bar .local pmc asub newclass P1, "Foo" find_type I0, "Foo" newsub asub, .Sub, _foo store_global "Foo", "__get_string", asub print bar end .end .sub _foo prototyped print "In foo!\n" .pcc_begin_return .pcc_end_return .end and expect it to print out "In foo!" like it ought. That is a cool thing, and we get to do it by subclassing delegate.pmc. The bad news is that, since all the methods in delegate.pmc are generated by library code and don't appear in delegate.pmc, you can't actually subclass from it properly. (I had to hack parrotobject.c to make it work) It would be a Good Thing if someone who knows what the heck's going on in pmc2c2.pl and/or lib/Parrot/Pmc2c.pm could thump this into working. I'm trying and, well, it's a twisty maze of undocumented methods, and generally a nasty mess. (I think. It might be terribly clean, but in that case the documentation is even more sorely lacking) -- Dan --"it's like this"--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Valgrind shouting
Hi, So I am currently trying to find another segfault, valgrind is helping me but the only thing it really says is ==24093== Conditional jump or move depends on uninitialised value(s) ==24093==at 0x8273227: compact_pool (src/resources.c:301) ==24093==by 0x827300C: mem_allocate (src/resources.c:149) ==24093==by 0x82736C6: Parrot_reallocate (src/resources.c:500) ==24093==by 0x8182513: expand_hash (src/hash.c:509) ==24093==by 0x81826C5: new_bucket (src/hash.c:587) ==24093==by 0x8182B66: hash_put (src/hash.c:891) ==24093==by 0x81816B3: dod_register_pmc (src/pmc.c:1009) ==24093==by 0x81C0973: Parrot_register_pmc (src/extend.c:791) ==24093==by 0x80DA233: S_new_xpvav (sv.c:1084) ==24093==by 0x80DB0AE: Perl_sv_upgrade (sv.c:1568) ==24093== and a couple of statements later on this, in something that shouldn't be able to segfault ==24093== Invalid write of size 4 ==24093==at 0x80DB162: Perl_sv_upgrade (sv.c:1577) ==24093==by 0x80C8E0D: Perl_newAV (av.c:386) ==24093==by 0x809976E: Perl_pad_push (pad.c:1525) ==24093==by 0x80D76D8: Perl_pp_entersub (pp_hot.c:2640) ==24093==by 0x80AF5C2: Perl_runops_debug (dump.c:1439) ==24093==by 0x8064E15: S_run_body (perl.c:1713) ==24093==by 0x806481A: perl_run (perl.c:1632) ==24093==by 0x804C720: main (miniperlmain.c:86) ==24093== Address 0x18 is not stack'd, malloc'd or free'd So, it is increasing the registered hash, doing something weird, and then promptly corrupting memory, or am I just guessing wrong here? Cheers Arthur
Re: subclassing bug
A PASM version of the test case is: newclass P16, "A" subclass P16, P16, "B" subclass P16, P16, "C" end I think I've figured out what's happening here. Stepping through the code with gdb shows that the first subclassing works fine, but the second blows up in Parrot_single_subclass at line 233: temp_pmc = VTABLE_clone(interpreter, VTABLE_get_pmc_keyed_int(interpreter, (PMC *)PMC_data(base_class), PCD_ALL_PARENTS)); This fetches the parent class's parent array, which is an Array PMC, and which at this point contains a single entry -- a ParrotClass PMC corresponding to class "A". We then call the clone method of this array, in order to copy it to temp_pmc. This in turn calls list_clone in order to copy its data, and since our list is comprised of a single PMC, list_clone calls its clone vtable method. BUT: this PMC is a ParrotClass, and there isn't currently a clone method implemented for ParrotClass, so we fall back on the default option, which is to throw an exception and die. The only reason that this works the first time that we create a subclass is that at that point the parent's parent list is empty. An obvious fix for this would be to implement a clone method for ParrotClass, but I'm not sure if this really makes sense, as we could then potentially end up with multiple PMCs representing the same class. (Also, implies that objects in deeply nested classes would have a considerable memory overhead, since they'd each have to drag around PMCs for each of their parent classes). Simon
[perl #27287] [PATCH] creates README's in several languages/ directories
# New Ticket Created by [EMAIL PROTECTED] # Please include the string: [perl #27287] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=27287 > This patch creates a couple of new small README's, for several languages/ directories which don't yet have them. Specifically: languages/forth/README languages/python/README languages/scheme/README They basically say, look in ../LANGUAGES.STATUS, and provide a one line pointer to further documentation where it exists. Looking for documentation in languages/ directories should be easy. (Not "ok, where is the documentation in _this_ one?".-) Mitchell diff -r -N -u ./languages.crnt/forth/README ./languages/forth/README --- ./languages.crnt/forth/README Wed Dec 31 19:00:00 1969 +++ ./languages/forth/READMEMon Mar 1 19:26:56 2004 @@ -0,0 +1,6 @@ + +Forth + +See forth.pod + +Also see ../LANGUAGES.STATUS diff -r -N -u ./languages.crnt/python/README ./languages/python/README --- ./languages.crnt/python/README Wed Dec 31 19:00:00 1969 +++ ./languages/python/README Mon Mar 1 19:26:35 2004 @@ -0,0 +1,6 @@ + +Python + +http://pirate.tangentcode.com/ + +Also see ../LANGUAGES.STATUS diff -r -N -u ./languages.crnt/scheme/README ./languages/scheme/README --- ./languages.crnt/scheme/README Wed Dec 31 19:00:00 1969 +++ ./languages/scheme/README Mon Mar 1 19:26:40 2004 @@ -0,0 +1,6 @@ + +Scheme + +No documentation available. + +Also see ../LANGUAGES.STATUS
Re: Tetris example
At 5:58 PM +0100 3/2/04, Jens Rieks wrote: Hi, Am Dienstag, 2. März 2004 17:19 schrieb Dan Sugalski: At 5:13 PM +0100 3/2/04, Leopold Toetsch wrote: >>Parrot's object support is not yet good enough to be able to >>convert the game to use ParrotObjects. > >What is missing? Constructors and destructors are my two big guesses here. :-P Mainly imcc support for method calling, but constructors too. Hopefully in the next day or two. Another nice-to-have is "hidden method calling" for array and hash-like access to objects. The Board "class" is currently just an array, but the element access can of course be replaced with direct method calls. As soon as I can abuse pmc2c2.pl sufficiently then this'll be doable. from pdd 15: : instantiate Px, Py, Sz (Unimplemented) : Instantiate a brand new class, based on the metadata : in Py, named Sz. I think I have missread this last time. What it is op supposed to do? How can I create an object of class the "Block"? find_type $I0, "Block" new $P0, $I0 should do it. -- Dan --"it's like this"--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
Parrot_PMC_new vs Parrot_register_pmc
Hi, Just a quick check, why is Parrot_register_pmc not named as the other Parrot_PMC_* functions in the external interface? Cheers Arthur
[perl #27314] delegate pmc methods ignored in inheritance
# New Ticket Created by Dan Sugalski # Please include the string: [perl #27314] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=27314 > If you have a pmc class that inherits from delegate you're out of luck. All of delegate's methods, save init, are autogenerated, and as such can't be inherited from. -- Dan --"it's like this"--- Dan Sugalski even samurai [EMAIL PROTECTED] have teddy bears and even teddy bears get drunk
[perl #27301] [PATCH] \t\pmc\exec.t Tests spawnw opcode
# New Ticket Created by [EMAIL PROTECTED] # Please include the string: [perl #27301] # in the subject line of all future correspondence about this issue. # http://rt.perl.org:80/rt3/Ticket/Display.html?id=27301 > Does the naming and placement of this test fit convention? The opcode is called 'spawnw' The function is 'Parrot_Run_OS_Command' The file 'config/gen/platform/*/exec.c' A little guidance would help occasionally. If it were forthcoming, I would try to write them up into a beginners FAQ.
Re: Tetris example
On Tue, 2 Mar 2004, Jens Rieks wrote: > from pdd 15: > : instantiate Px, Py, Sz (Unimplemented) > : Instantiate a brand new class, based on the metadata > : in Py, named Sz. > I think I have missread this last time. What it is op supposed to do? > > How can I create an object of class the "Block"? newclass P1, "Block"# Creates a "Block" class find_type I0, "Block" # Gets Parrot's internal index no. for the # "Block" class new P2, I0 # Creates an object in that class This really needs to be spelled out better in the PDD -- it is mentioned in an example, but I don't think it's covered in the discussion of object-related opcodes. NB. The code above just creates the object -- you still need to init. the data by hand. Simon
Re: Current PLATFORMS
On Tue, 2 Mar 2004, Leopold Toetsch wrote: > x86_64 is nowadays amd64 I presume. Can you please provide the output of > $ cat myconfig Summary of my parrot 0.1.0 configuration: configdate='Tue Mar 2 11:51:06 2004' Platform: osname=linux, archname=x86_64-linux jitcapable=0, jitarchname=nojit, jitosname=nojit, jitcpuarch=i386 execcapable=0 perl=/usr/bin/perl Compiler: cc='gcc', ccflags=' -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', Linker and Libraries: ld='gcc', ldflags=' -L/usr/local/lib', cc_ldflags='', libs='-lpthread -lnsl -ldl -lm -lcrypt -lutil' Dynamic Linking: so='.so', ld_shared='-shared -L/usr/local/lib', ld_shared_flags='' Types: iv=long, intvalsize=8, intsize=4, opcode_t=long, opcode_t_size=8, ptrsize=8, ptr_alignment=4 byteorder=12345678, nv=double, numvalsize=8, doublesize=8 -J --
Re: Current PLATFORMS
On Tue, 2 Mar 2004, Leopold Toetsch wrote: > x86_64 is nowadays amd64 I presume. Can you please provide the output of > $ cat myconfig AMD originally was calling it x86-64. So it went into the Linux kernel as ./arch/x86_64. Then AMD renamed the instruction set to AMD64. Just to keep it confusing, Prescott/Nocoma (ia32e) support is also part of ./arch/x86_64. > > > ... I can provide > > the complete test run if anyone thinks it will be helpful. > > Doesn't help much. Did you get any warnings during compilation? Test > results really don't look good. There seem to be some serious problems. I've attached the results of: perl Configure.pl make > ./parrot_build-x86_64.txt 2>&1 -J -- parrot_build-x86_64.txt Description: Binary data
subclassing bug
The following code results in a clone() not implemented in class 'ParrotClass' error: .sub _main .local pmc a .local pmc b .local pmc c newclass a, "A" subclass b, a, "B" subclass c, b, "C" end .end jens
Re: Tetris example
Hi, Am Dienstag, 2. März 2004 17:19 schrieb Dan Sugalski: > At 5:13 PM +0100 3/2/04, Leopold Toetsch wrote: > >>Parrot's object support is not yet good enough to be able to > >>convert the game to use ParrotObjects. > > > >What is missing? > > Constructors and destructors are my two big guesses here. :-P Mainly imcc support for method calling, but constructors too. Another nice-to-have is "hidden method calling" for array and hash-like access to objects. The Board "class" is currently just an array, but the element access can of course be replaced with direct method calls. from pdd 15: : instantiate Px, Py, Sz (Unimplemented) : Instantiate a brand new class, based on the metadata : in Py, named Sz. I think I have missread this last time. What it is op supposed to do? How can I create an object of class the "Block"? jens
Re: Tetris example (was: Please no checkins)
Hi, Am Dienstag, 2. März 2004 10:48 schrieb Leopold Toetsch: > Jens Rieks <[EMAIL PROTECTED]> wrote: > > Hi leo, > > > > Here is the tetris example, include it if you want... > > I've now tested it a bit. Looks really good and works - mostly :) > - it tries to load SDL_Image, albeit this seems to be unused I will add support for textured blocks when the object orientated SDL interface is working. > - some blocks are dropping down invisibly Which blocks? > - it doesn't recognize a "game over" situation Yep, to be done. A two player mode is also available, F1 starts a single, F2 a two player game. They are just two distinct boards with no interaction yet. > - some uit key handling would be nice. escape or alt-f4. A former version also supported Q, but now W/S/A/D/LSHIFT is used as the second player's controls. I will change this too, as the right controls are for the left board at the moment, and wise versa. > Despite that its a great application and a very good example: > > # create the tetris app > app = _Tetris::App::new() > > # init the tetris app > ret = _Tetris::App::init( app ) > > This code looks darned good. Thanks a lot :-) Parrot's object support is not yet good enough to be able to convert the game to use ParrotObjects. The documentation is also not finished yet, the i386 JIT set_i_n bug took a lot of time (no block with the highest id occured when running JIT)... I acted on the assumption that the release will be one day later. > > jens > > leo jens
fleshing out extend.h
Pmc class headers providing parts of parrot's C extension api are not being included in extend.h. Such as the generated file ./classes/pmc_array.h, with its Parrot_Array_push_integer. Such files are not being included anywhere in include/parrot/ at all. So it looks like a ./config/gen/ generator is needed. Perhaps using Configure::Data->get('pmc_names') to generate a bunch of #include's for a new header file. One might thus create a ./include/parrot/pmc_apis.h, say, to be included by extend.h. [1] Does this seem a plausible way to proceed? Mitchell [1] extend.h is already including several other parrot headers.
[DOCS] make html
I've added two targets to the Makefile. html: Generate HTML documentation from POD in the sources. html-clean: Remove the HTML documentation. Mike
Re: Tetris example (was: Please no checkins)
Jens Rieks wrote: Hi, Am Dienstag, 2. März 2004 10:48 schrieb Leopold Toetsch: - some blocks are dropping down invisibly Which blocks? It was the red (color=4) one, which vanished on my notebook, especially when it got darkened after dropping down. Parrot's object support is not yet good enough to be able to convert the game to use ParrotObjects. What is missing? leo
Re: Current PLATFORMS
Joshua Hoblitt <[EMAIL PROTECTED]> wrote: > Parrot 0.1.0 builds on Linux/x86_64 w/gcc 3.3.3 (20040217) and > glibc-2.3.3 (pre20040207) but a number of tests fail. x86_64 is nowadays amd64 I presume. Can you please provide the output of $ cat myconfig > ... I can provide > the complete test run if anyone thinks it will be helpful. Doesn't help much. Did you get any warnings during compilation? Test results really don't look good. There seem to be some serious problems. > Failed 60/95 test scripts, 36.84% okay. 422/1386 subtests failed, 69.55% okay. Thanks, leo
Re: Current PLATFORMS
Parrot 0.1.0 builds on Linux/x86_64 w/gcc 3.3.3 (20040217) and glibc-2.3.3 (pre20040207) but a number of tests fail. I can provide the complete test run if anyone thinks it will be helpful. -J -- Failed TestStat Wstat Total Fail Failed List of Failed --- imcc/t/reg/spill.t3 768 33 100.00% 1-3 imcc/t/syn/bsr.t 9 2304139 69.23% 1-8 13 imcc/t/syn/clash.t3 768133 23.08% 5-7 imcc/t/syn/const.t3 768 43 75.00% 1-3 imcc/t/syn/eval.t 4 1024 74 57.14% 3-6 imcc/t/syn/file.t 4 1024124 33.33% 1-4 imcc/t/syn/macro.t9 2304239 39.13% 1-9 imcc/t/syn/namespace.t3 768 33 100.00% 1-3 imcc/t/syn/pcc.t 11 281631 11 35.48% 1-4 11 16 23-25 28 31 t/native_pbc/integer.t4 1024 44 100.00% 1-4 t/native_pbc/number.t 5 1280 55 100.00% 1-5 t/op/arithmetics.t 18 460820 18 90.00% 1-18 t/op/basic.t 4 1024214 19.05% 2 10-11 15 t/op/bitwise.t 20 512023 20 86.96% 1-5 9-23 t/op/comp.t 1 256 71 14.29% 7 t/op/conv.t 12 307212 12 100.00% 1-12 t/op/gc.t 7 1792 87 87.50% 1-7 t/op/globals.t1 256 31 33.33% 2 t/op/integer.t 27 691239 27 69.23% 1-9 22-39 t/op/interp.t 6 1536116 54.55% 2 6 8-11 t/op/jit.t 44 1126458 44 75.86% 1-40 44-47 t/op/jitn.t 9 2304 99 100.00% 1-9 t/op/lexicals.t 2 512 62 33.33% 3-4 t/op/macro.t 10 256016 10 62.50% 1-4 6-10 16 t/op/number.t22 563238 22 57.89% 1-11 25-27 29 31-35 37-38 t/op/stacks.t25 640056 25 44.64% 1-6 23-24 29-39 43-44 46- 47 49-50 t/op/string.t26 6656 126 26 20.63% 3-4 65-71 74-77 85-95 105 125 t/op/types.t 2 512 32 66.67% 2-3 t/pmc/array.t 5 1280125 41.67% 6-7 10-12 t/pmc/delegate.t 6 1536 96 66.67% 1-2 5-6 8-9 t/pmc/dumper.t6 1536116 54.55% 6-11 t/pmc/eval.t 4 1024 64 66.67% 1-3 6 t/pmc/exception.t 4 1024224 18.18% 16 18 20-21 t/pmc/float.t 1 256 91 11.11% 1 t/pmc/freeze.t7 1792117 63.64% 2 4-8 10 t/pmc/intlist.t 1 256 91 11.11% 1 t/pmc/io.t4 1024214 19.05% 2 4 9 18 t/pmc/iter.t 2 512 92 22.22% 7-8 t/pmc/managedstruct.t 3 768 53 60.00% 2-4 t/pmc/mmd.t 1 256 11 100.00% 1 t/pmc/object-meths.t 3 768 43 75.00% 1 3-4 t/pmc/objects.t 7 1792257 28.00% 1-2 5-7 9 13 t/pmc/orderedhash.t 3 768173 17.65% 6-7 17 t/pmc/perlarray.t 9 2304269 34.62% 1-3 20-24 26 t/pmc/perlhash.t 13 332832 13 40.62% 2-8 22-24 28 30-31 t/pmc/perlstring.t3 768293 10.34% 2 16-17 t/pmc/pmc.t 6 1536926 6.52% 21-22 62 76 78-79 t/pmc/prop.t 1 256 71 14.29% 7 t/pmc/scratchpad.t1 256 51 20.00% 5 t/pmc/signal.t2 512 62 33.33% 2 4 t/pmc/sort.t 1 256 91 11.11% 6 t/pmc/sub.t 6 1536666 9.09% 3-4 6 36-38 t/pmc/threads.t 5 1280115 45.45% 2-4 8-9 t/pmc/timer.t 2 512 72 28.57% 6-7 t/pmc/tqueue.t1 256 11 100.00% 1 t/src/extend.t4 1024134 30.77% 3-4 9 13 Failed TestStat Wstat Total Fail Failed List of Failed --- t/src/hash.t 8 2048108 80.00% 3-10 t/src/io.t6 1536206 30.00% 4 7 14-15 17 20 t/src/list.t 1 256 21 50.00% 1 t/src/sprintf.t 2 512 32 66.67% 2-3 70 subtests skipped. Failed 60/95 test scripts, 36.84% okay. 422/1386 subtests failed, 69.55% okay.
Tetris example (was: Please no checkins)
Jens Rieks <[EMAIL PROTECTED]> wrote: > Hi leo, > Here is the tetris example, include it if you want... I've now tested it a bit. Looks really good and works - mostly :) - it tries to load SDL_Image, albeit this seems to be unused - some blocks are dropping down invisibly - it doesn't recognize a "game over" situation - some uit key handling would be nice. Despite that its a great application and a very good example: # create the tetris app app = _Tetris::App::new() # init the tetris app ret = _Tetris::App::init( app ) This code looks darned good. > jens leo
Re: [perl #27272] [PATCH] fix typos in intro.pod
Neil Conway <[EMAIL PROTECTED]> wrote: > This trivial patch fixes a few typos I noticed while reading through > docs/intro.pod Thanks, applied. leo
[DEV] some vim notes
When writing PASM/PIR or digging in the Parrot source, you (as a vim user) might find it helpful to run: 1) make -C editors This installs a vim syntax file in ~/.vim/syntax/imc.vim (I have it sym-linked as pasm.vim too). And: $cat ~/.vim/ftplugin/imc.vim augroup filetypedetect au BufNewFile,BufRead *.imc setf imc augroup END $cat ~/.vim/ftplugin/pasm.vim augroup filetypedetect au BufNewFile,BufRead *.pasmsetf pasm augroup END $cat ~/.vim/ftplugin/pmc.vim augroup filetypedetect au BufNewFile,BufRead *.pmc setf c augroup END 2) make tags While hacking PASM press or with the cursor standing at an opcode (or some C syntax item of course). This might be helpful, if you don't know all 1384 opcode variants by hard :) Have fun, leo
Cygwin tests (was: Current PLATFORMS)
Tj Anthony <[EMAIL PROTECTED]> wrote: > [silent lurker alert] Not more ;) > Parrot will build on Cygwin, as long as you configure with: > perl Configure.pl --define-inet_aton Good. > The tests, however, are a different story. Notably, extend_12 runs away > and starts hopelessly consuming memory until manually killed. > Failed 23/95 test scripts, 75.79% okay. 49/1370 subtests failed, 96.42% > okay. Bad. > If there's desire, I'll glady submit the whole output from the tests. Doesn't help much. It would be great, if you can run failing tests standalone and through the debugger, to figure out what is going on. > TJ Anthony Thanks - PLATFORMS adjusted, leo
Re: [PATCH] parrotbug 0.0.1
Jerome Quelin <[EMAIL PROTECTED]> wrote: > I did not checked it in parrot's repository because: > - I don't know where it should go in parrot tree tools/dev invoked per "make bugreport"? > - the copyright is missing (Dan, please insert correct copyright) All in parrot root is subject to terms in LICENSES. leo
Re: This week's summary
The Perl 6 Summarizer <[EMAIL PROTECTED]> wrote: > The Perl 6 Summary for the week ending 20040229 > Native PBC issues > It turns out that, just at the moment, Parrot bytecode isn't actually > platform independent. This will, of course, get fixed, but it's not > Leo's top priority at present. Mostly fixed, thanks to Jarkko. > ... He asked people who are running Parrot on > 64 bit and Big endian architectures to submit native_pbc test files (if > you're on such an architecture, take a look at t/native_pbc/*.t for > instructions, and the Parrot community will thank you for it). And we already have {little,big} endian {32,64} bit native tests. Thanks for your summary, leo