|
Parrot 1.2.0 released | parrot.org/ | 303 RTs left | Weekly Priority: Profiling Set by moderator on 28 May 2009. |
|||
| cotto | and bacek too, apparently | 00:00 | |
| Austin_Hastings | Next time, pucker up. | 00:01 | |
| Anyone know what the set_*_namespace opcodes do? | 00:12 | ||
| mugwump | aren't those like writing 'package Foo;' in Perl ? | 00:14 | |
| Austin_Hastings | Nerp. | 00:15 | |
| In pir, that would be .namespace ['Foo'] | |||
| mugwump | that's not an opcode | ||
| Austin_Hastings | As far as I can tell, set_*_namespace edits the namespace tree and inserts a namespace PMC into some named place. | ||
| So I could say $P0 = get_root_namespace [ 'parrot' ; 'Foo' ; 'Bar' ] | 00:16 | ||
| and then say set_root_namespace [ 'parrot' ; 'Blorf' ], $P0 | |||
| And now the Blorf namespace "is", or "is a copy of", the Foo::Bar namespace. | |||
| cotto | Austin_Hastings, those don't appear to be actual opcodes. | ||
| The only reference I can find is in the docs. | 00:17 | ||
| Austin_Hastings | Yeah, that's what I was reading when I asked the question. | ||
| Building my little parrot glossary. | |||
| cotto | so it looks like your answer is "syntax error" ;) | 00:19 | |
| Austin_Hastings | What a pity. It looked like something really fun. | 00:20 | |
| cotto wonders why it's nyi and if the references should be removed | 00:22 | ||
| Austin_Hastings | The namespace.pmc has a set_keyed method that appears to do the same thing from the "informal" interface side. | 00:23 | |
| Based on a cursory read, it should probably be queued for implementation. | |||
| But I'd dearly like to know what is supposed to be implemented with that opcode. Is that the "cheat" for use Foo; ? | 00:25 | ||
|
00:26
bacek_ joined
|
|||
| Austin_Hastings | rehai, bacek | 00:27 | |
| bacek_ | rehai Austin_Hastings | 00:28 | |
| cotto | bacek_, I've gotten myself (temporarily?) unstuck wrt the vtdumper. I'll let you know if I get jammed again. | 00:33 | |
| bacek_ | cotto: ok. I almost resurrected compilers/PIR. It will be useful for L1 | 00:36 | |
| cotto: I'm going to implement proper handling of MULTIs in next few days, btw. | 00:37 | ||
| cotto | in pmcc or pmc2c? | ||
|
00:39
Whiteknight joined
|
|||
| cotto | I guess pmcc. | 00:44 | |
| meaning that it'll require some rewriting once pcc_rewiring lands | 00:45 | ||
| Whiteknight++ #blogging in general | |||
| Whiteknight | thanks! | 00:46 | |
| cotto | It's interesting to know what you're up to. | 00:48 | |
| bacek_ | cotto: pmcc | 00:49 | |
| cotto | I guess it'll be good to get that code working, even if it'll need rewriting later. | 00:50 | |
| bacek_ | METHODs are slightly more complex beast... | 00:53 | |
| So, until after pcc_rewiring merge it's waste of time to implement them in pmcc. (IMHO) | |||
| cotto | Got it. I confused METHODs and MULTIs. | 00:55 | |
| Tene | pmichaud: I got it working... I now can now subclass ruby classes from Perl 6 | 01:01 | |
| cotto | Tene is a madman | 01:02 | |
| Tene? | |||
| purl | i guess Tene is Stephen Weeks | ||
| cotto | Tene is also a madman | ||
| purl | okay, cotto. | ||
| cotto | Tene++ #we like madness | ||
| and Madness | |||
| cotto starts sing Our House | 01:03 | ||
|
01:05
kid51 joined
|
|||
| dalek | TT #515 closed by jkeenan++: Remove old parrot versions from CPAN | 01:09 | |
|
01:25
dduncan joined
01:32
dduncan left
|
|||
| dalek | rrot: r39373 | jkeenan++ | branches/pdd30install_stage4: Removing branch from HEAD per discussion in |
01:46 | |
| rrot: r39374 | jkeenan++ | trunk/config/init/defaults.pm: Delete assignment of empty string to 'cygchkdll' per discussion in trac.parrot.org/parrot/ticket/733. |
01:49 | ||
|
02:00
silug joined
|
|||
| Tene | ... Oh, pynie's clss handling is pretty primitive. | 02:04 | |
| I should fix it. | 02:05 | ||
| dalek | rrot: r39375 | cotto++ | branches/pmc_pct (5 files): [vtdumper] implement actions.pm for the vtable.tbl compiler |
02:06 | |
| rrot: r39376 | cotto++ | branches/pmc_pct/compilers/pmcc/src/nodes.pir: [pmcc] minor wording fix (VTABLE method -> VTABLE function) |
02:09 | ||
|
02:10
Coke joined
|
|||
| Coke | bacek_: ping | 02:14 | |
|
02:14
particle1 joined
|
|||
| bacek_ | Coke: short pong. | 02:15 | |
| Coke | partcl only builds against an installed parrot. | ||
| (I have a script setup to clean, up, configure, build, and install into my homedir, so I can "quickly" test changes to parrot. | |||
| bacek_: did you see my comment that your branch breaks tcl? | 02:16 | ||
| bacek_ | Coke: erm. "nan"? | ||
| Coke | I fixed the nan issue. and then you fixed it. | ||
| but t/tcl_misc.t was still failing. | |||
| It was the same failure we had in trunk for a while. you need a merge, perhaps? | |||
| bacek_ | I've got only one failure (and in trunk too). But can't remember what is was. | 02:17 | |
| ok, I'll merge trunk first and retest partcl. | |||
| Coke | trunk to branch? | ||
| there should be no partcl failures in trunk; one that looks bad, but all tests pass. | 02:18 | ||
| (that's [lsort]) | |||
| bacek_ | Ah!. lsort. "All 22 tests passed" | ||
| This is only one failure that I had in branch and trunk | 02:19 | ||
| Anyway, I'll run rakudo's spectest and partcl test affter merge-before-commit to be sure. | 02:20 | ||
| cotto | bacek_, I'm syncing pmc_pct with trunk. It should be done in a few minutes. | 02:22 | |
| Coke | bacek++ | 02:23 | |
| bacek_ | cotto: ok. I'll jump on this train tonight. | 02:25 | |
| cotto | bacek_, did you make any changes to compilers/nqp/src/Grammar/Actions.pm? | ||
| bacek_ | Coke: too early ;) | ||
| cotto | it's showing some conflicts | ||
| Coke | bacek_: I'm just glad you're able to run partcl's test suite. | ||
| bacek_ | cotto: many false attempts to speed-up parsing. | ||
| Coke | thank you for taking the time to do that, I /really/ appreciate it. | ||
| In return, I'm trying to speed it up. =-) | |||
| cotto | so they're safe to clobber? | ||
| bacek_ | cotto: go ahead. | 02:28 | |
| cotto | thanks | ||
| bacek_ | Coke: I'll try too speed-it up too :) | 02:29 | |
| cotto | here we go | 02:30 | |
|
02:35
janus joined
|
|||
| dalek | rrot: r39377 | cotto++ | branches/pmc_pct (356 files): [pmcc] bring branch up-to-date with trunk |
02:35 | |
| rrot: r39378 | cotto++ | branches/pmc_pct/MANIFEST: [manifest] update the MANIFEST, just in case someone feels like trying to build from this branch |
02:39 | ||
| cotto | I know it's unlikely, but it's good to be be prepared. | 02:40 | |
| shopping time! | 02:44 | ||
|
03:12
darbelo joined
|
|||
| dalek | rtcl: r426 | coke++ | trunk/ (3 files): Replace history stub with stdlib variant. |
03:29 | |
| rtcl: r427 | coke++ | wiki/SpecTest (2 files): library/history.tcl changes this from a failure to a full skip |
|||
| rtcl: r428 | coke++ | trunk/library/auto.tcl: pass some of autoMkindex.test |
03:39 | ||
| rtcl: r429 | coke++ | trunk/library/README: docs - improve |
|||
|
03:40
ruoso joined
04:00
Austin_Hastings left
04:08
petdance joined
04:14
japhb joined
04:29
tetragon joined
04:39
szabgab joined
05:10
cotto joined
05:30
tetragon joined
06:08
burmas joined
06:11
tetragon joined
06:22
iblechbot joined
06:41
tetragon joined,
snarkyboojum joined
06:58
GeJ joined
07:45
muixirt joined
08:08
HG` joined
|
|||
| cotto | Does freeze/thaw on a past dtrt? | 08:11 | |
|
08:13
iblechbot joined
|
|||
| bacek_ | cotto: 50/50 | 08:18 | |
| purl | 1 | ||
| cotto | purl is optimistic | 08:20 | |
| What would be more certain? yaml and json don'd seem to dtrt at all | 08:21 | ||
|
08:21
burmas left
|
|||
| cotto | From looking at the dump with a hexeditor, it looks like much of the data are there, but it's also only 9.3KB. | 08:22 | |
| bacek_ | cotto: for which pmc? | 08:32 | |
| cotto | for the vtable dumper | 08:33 | |
| bacek_ | bacek@illusion:~/src/parrot/src$ ls -la vtable.tbl | ||
| -rw-r--r-- 1 bacek bacek 9288 2009-03-03 11:01 vtable.tbl | |||
| looks about same :) | |||
| cotto | I guess we'll see if everything's there once that dump gets some exercise | 08:34 | |
| bacek_ | indeed. | ||
| time to go home. | |||
| see you soon | |||
| cotto | bye for now | ||
|
08:43
tetragon joined
|
|||
| dalek | rrot: r39379 | fperrad++ | trunk/src/pmc/sub.pmc: [codingstd] remove hard tabs |
08:43 | |
| rrot: r39380 | tene++ | trunk/runtime/parrot/languages/parrot/parrot.pir: Fix an issue with PIR library exporting |
08:53 | ||
| cotto | perhaps the fact that I've been staring at my computer for the last several minutes indicates that I should go to sleep. | 09:14 | |
| cotto sleeps | |||
|
09:33
bacek joined
09:52
masak joined,
AndyA joined
09:55
kj joined
10:06
skids joined
10:18
kj left
10:56
tetragon joined
11:57
zz_coke joined
12:04
zz_coke joined
12:07
bkuhn joined
12:11
zz_coke joined
12:14
ruoso joined
|
|||
| bacek | cotto? | 12:50 | |
| purl | cotto is probably Christoph Otto <mailto:christoph@mksig.org> | ||
| bacek | *incoming* | 12:56 | |
| dalek | rrot: r39381 | bacek++ | branches/pmc_pct/compilers/pmcc (4 files): [pmcc] Disallow nameless function arguments |
||
| rrot: r39382 | bacek++ | branches/pmc_pct/compilers/pmcc/src/parser (2 files): Simplify c_type parsing to be just list of identifiers |
13:00 | ||
| rrot: r39383 | bacek++ | branches/pmc_pct/compilers/pmcc/t (2 files): [pmcc] Add test for MULTIs |
|||
| rrot: r39384 | bacek++ | branches/pmc_pct/compilers/pmcc/t/08-multi.t: [t] Add first real test. |
|||
| rrot: r39385 | bacek++ | branches/pmc_pct/compilers/pmcc/src/nodes.pir: Implement add_multi in PMC. |
|||
| rrot: r39386 | bacek++ | branches/pmc_pct/compilers/pmcc/TODO.pod: Rename TODO to TODO.pod |
|||
| rrot: r39387 | bacek++ | branches/pmc_pct/compilers/pmcc/TODO.pod: Podify TODO.pod |
|||
| rrot: r39388 | bacek++ | branches/pmc_pct/compilers/pmcc/TODO.pod: Create some real TODO. |
|||
|
13:04
pdcawley joined
13:05
Whiteknight joined
|
|||
| dalek | rrot: r39389 | bacek++ | branches/pmc_pct/compilers/pmcc/README.pod: Update AUTHORs section in README. |
13:06 | |
| rrot: r39390 | bacek++ | branches/pmc_pct/compilers/pmcc (2 files): Implement MULTIs PASTing |
|||
| bacek | msg Infinoid I've got crazy idea for dalek - use nopaste for automatic handling of git svn dcommits... | 13:08 | |
| purl | Message for infinoid stored. | ||
| pmichaud | is there a way in a PIR sub to determine the number of return values requested by the caller? | ||
| actually, just knowing if any return values have been requested would be sufficient for my purposes (i.e., detecting void context) | 13:09 | ||
|
13:10
gryphon joined
13:12
sjn joined
|
|||
| Whiteknight | pmichaud: Not that I'm currently aware o | 13:13 | |
| of | |||
| the changes Allison are working on now should enable it though | 13:14 | ||
| pmichaud | hmmm. | 13:17 | |
| seems like it ought to be visible somehow. | 13:18 | ||
| bacek | pmichaud: results_signature isn't exposed in ParrotInterp. But it can be added easily | 13:25 | |
| pmichaud | it's not critical -- would just give me a useful optimization for postfix:<++> | 13:26 | |
| bacek | In C++ Russia no-one use postfix++ :) Because of performance issues. | 13:29 | |
| nopaste | "bacek" at 114.73.27.220 pasted "results_signature exposure from ParrotInterp" (16 lines) at nopaste.snit.ch/16785 | 13:31 | |
| bacek | pmichaud: code from nopaste should work. But it will give performance hit, because you'll have to create new pmc for ParrotInterp... | 13:32 | |
| pmichaud | why create new PMC? Why not just use getinterp ? | 13:33 | |
| bacek | Ah. getinterp doesn't create new PMC? | 13:34 | |
| pmichaud | it returns the current interpreter, I think. | ||
| bacek | $1 = VTABLE_get_pmc_keyed_int(interp, interp->iglobals, | ||
| IGLOBALS_INTERPRETER); | |||
| I never look at this part of Parrot... | 13:35 | ||
| pmichaud | it does clone the results signature, though, which is ugly. | ||
| If checking the calling status requires making a clone, that invalidates the optimization I was hoping to make in the first place. | 13:36 | ||
| bacek | Returning bare signature is little bit dangerous. | 13:37 | |
| pmichaud | yes, allison++ and I have had this discussion. | ||
| introspection needs to be inexpensive, though. | |||
| bacek | But if we can make it read-only, than we can return it | ||
| (checked code) Looks like it's possible to make CallSignature read-only after build and return bare pointer to it. | 13:41 | ||
| Ok, It's not... | 13:46 | ||
| pmichaud | It's not that important. We'll live with what we have now, and I'll put it as a todo for allison to consider as part of the calling conventions refactor. | ||
|
14:02
dukeleto joined
14:05
Steve_H joined
|
|||
| NotFound | If we have inf and infinity, why we don't have nanity togheter with nan? | 14:11 | |
| szbalint | I'm sure there are inf reasons but nan occurs to me atm | 14:12 | |
| I jest, I jest | |||
| NotFound | :D | ||
| pmichaud | I think it would be naninity, wouldn't it? | 14:17 | |
| bacek vote for "not-a-number-at-all" | 14:18 | ||
|
14:19
hudnix joined
|
|||
| NotFound | maybe-a-number%(some percent) | 14:20 | |
| Togheter with a new pmc: FuzzyFloat | 14:22 | ||
| bacek | Don't forget "just my 2Ā¢" :) | ||
| NotFound | ⬠¢ or $ ¢ ? | 14:23 | |
| bacek | de ja vu. | ||
| It's not a number anyway. | |||
| NotFound | maybe | ||
| bacek | Oh! "*" should produce NaN too. | ||
| no, it can be number... | 14:24 | ||
| Ah! "*" will give you some random float! | |||
| NotFound | Then '/' must give you the winner. | 14:25 | |
| bacek | Problem is that "$N0 = *; $N0 == ORLY" should produce string "YRLY!" | 14:27 | |
| And no one understand IMCC guts to implement it | |||
| particle | this isn't LOLPIR | ||
| particle likes IaNaN | 14:28 | ||
| "i am not a number" | |||
| bacek singing IaNaNaNaN | |||
| NotFound | She's got the look! | ||
| bacek | ..with gipsy tune | ||
|
14:31
Steve_H joined
|
|||
| bacek | Anyway, it's tomorrow there already. Bed time. | 14:32 | |
| .zzZZZ( $bacek.ooO( .zzz ) ) | |||
| mugwump | oh, the inanity | 14:40 | |
| NotFound | Did we have some version of parrot logo in some vector format? | 14:45 | |
| particle | hey mugwump! | 14:47 | |
| purl | i guess mugwump is in a fantasy world of delusions and poor punctuation. or a purl hacker or mr. 20/20 hindsight or hungry | ||
| Tene | Whiteknight: ping | 14:52 | |
| pmichaud | oh how cool: www.snopes.com/photos/natural/parrotflower.asp | ||
| dalek | rdinal: 533154c | tene++ | src/builtins/eval.pir: Fix encoding issues |
14:59 | |
| kudo: b88c33d | tene++ | src/parser/actions.pm: Register foreign types at compile time. |
|||
| kudo: 2653235 | tene++ | perl6.pir: Fix an issue with foreign languages loading Perl6 libraries without exported symbols... probably the wrong fix |
|||
| mugwump | hello particle ... how's the mini running? :) | 15:01 | |
| particle | lovely, thanks. needs a wash, though :) | ||
| Tene | I got my steme compiler loading foreign libraries too... but it segfaults in the GC. | 15:02 | |
| particle | you hot-tubbing your way across the usa this year? | ||
| Tene | When I run it with -G it runs fine. | ||
| mugwump | heh, nothing planned yet | ||
| particle | tene: gcdebug runcore is your slow, but helpful friend | ||
| Tene | particle: yes, crashes under gcdebug too, and always in the same place | 15:03 | |
| when trying to mark a continuation. | |||
| poking around with gdb, it looks like it has some nonsense values | |||
| particle | does parrot default to optimized build yet? | ||
| Tene | No. | 15:04 | |
| mugwump | particle: but the 2010 linux.conf.au is in my home town :D | ||
| particle | didn't think so | ||
| mugwump: i'm tossing around the idea of osdc this year | |||
| Tene | I had to rebuild without --optimize to get a reasonable bt | ||
| mugwump | ah, 3am... | 15:06 | |
|
15:06
viklund joined
|
|||
| mugwump zonks | 15:06 | ||
|
15:06
HG` joined
15:14
whoppix joined
15:21
rdice joined
|
|||
| Whiteknight | Tene: pong | 15:22 | |
|
15:24
dalek joined
15:25
pmichaud_ joined
|
|||
| pmichaud_ | ping feather.perl6.nl | 15:25 | |
| purl | 10 packets transmitted, 10 received, 0% packet loss, time 9013ms, rtt min/avg/max/mdev = 120.713/121.442/122.195/0.521 ms | ||
| dalek | kudo: 5745c6b | pmichaud++ | src/ (7 files): Convert 'deref_objectref' dynop to 'deobjectref' and 'descalarref'. |
15:29 | |
| kudo: 9e2b9ad | pmichaud++ | src/builtins/assign.pir: Better handling of assignment of ObjectRef values. Fixes RT #66280. |
|||
| kudo: 10a9b23 | pmichaud++ | : Merge branch 'master' of git@github.com:rakudo/rakudo |
|||
| Tene | Whiteknight: I've got a GC segfault... interested? | 15:30 | |
| NotFound | CAN I HAZ SEZFAULT? | ||
| Tene | U WANTZ? | 15:31 | |
|
15:31
Theory joined
|
|||
| NotFound | Gimme two | 15:31 | |
| Tene | NotFound: go download and build steme: github.com/tene/steme/ | ||
|
15:31
sekimura joined
|
|||
| NotFound | Tene: done | 15:33 | |
| make test pass | |||
| Tene | NotFound: do you have Parrot installed somewhere, or only dev uninstalled copy? | ||
| NotFound | Installed | ||
| purl | Installed is easy as well. | ||
| NotFound | Eh, no, I was using the build tree only | 15:34 | |
| Tene | I'm trying to remember how to set up symlinks to get languages to work with load_language from a non-installed copy of Parrot | 15:35 | |
| Ah. | |||
| cd .../parrot/runtime/parrot/languages ; ln -s ~/src/rakudo perl6 | 15:36 | ||
| or, I guess, just cd ~/src/steme ; ln -s ~/src/rakudo perl6 | |||
| will work too | |||
| NotFound | Done again using the installed one. Do you want I test again with the parrot build tree renamed? | ||
| Tene | gist.github.com/123673 -- running nap.scm fails with a segfault | ||
| I haven't put it in the test suite yet, as I haven't set up different test targets, and I don't want to require properly-configured rakudo just to run the tests. | 15:37 | ||
| Whiteknight | Tene: Sure | ||
| Tene | Whiteknight: gist.github.com/123673 | 15:38 | |
| pmichaud | lunchtime -- bbl | 15:39 | |
| Tene | Whiteknight: it requires building steme and setting up symlinks so Parrot can find rakudo by name | ||
|
15:40
rdice joined
|
|||
| Whiteknight | don't have a smaller test case? | 15:40 | |
| Tene | No, I don't. | 15:41 | |
| NotFound | Did we have some guide on how to install languages? | ||
| Tene | NotFound: put a symlink named 'perl6' that points to the rakudo dir in either the current directory or in ~/src/parrot/runtime/parrot/languages/ | 15:42 | |
| or, if you have an installed parrot, /.../parrot/lib/1.2.0-devel/languages/ | |||
| dalek | rtcl: r430 | coke++ | trunk/ (2 files): Remove some crufty reloads of the .pbc file which are no longer needed. |
15:44 | |
| NotFound | Tene: segfaults even without the Naptime.pm file | ||
| Tene | Yes, it segfaults when load_bytecode-ing perl6.pbc | ||
| (or cardinal.pbc) | |||
| (Well, load_language-ing, but effectively the same) | 15:45 | ||
| NotFound | backtrace shows that is instantiating something while doing sub pragmas, I suppose that is some :load sub. | 15:47 | |
| $ parrot steme.pbc nap.scm | 15:50 | ||
| Null PMC access in get_string() | |||
| Tene | That's not what I get at all. | ||
| NotFound | Segfaults only using the fakecutable | ||
| Tene | NotFound: did you run with --gc-debug? | ||
| NotFound | No | 15:51 | |
| Tene | For me, it segfaults however I try to run it. fake, installed, or dev parrot | ||
| NotFound | current instr.: 'parrot;P6metaclass;register' pc 654 (runtime/parrot/library/P6object.pir:434) | ||
| called from Sub 'perl6;Perl6Role;onload' pc 3721 ((unknown file):-1) | |||
| called from Sub 'load_language' pc 20189 (src/gen_actions.pir:2032) | |||
|
15:53
iblechbot joined
|
|||
| NotFound | There is no load_language around src/gen_actions.pir:2032 | 16:03 | |
| Tene | no, the PIR reporting lies. | 16:04 | |
| cotto | imcc-- #I was running into that too | ||
| NotFound | Isn't even in that file | ||
| load_language is called from a sub that is under .HLL 'parrot'. P6object guess the HLL namespace from the caller. Np wonder it fails. | 16:07 | ||
| Tene | ... | ||
| um, no, not quite. | |||
| p6object is being called from perl6.pir | |||
| which is .HLL 'perl6' | |||
| You need to put the load_language call in .HLL parrot right now to deal with a Parrot bug with loadlib and PMCs. | 16:08 | ||
| so that the .loadlib 'perl6_group' happens in .HLL 'parrot' | |||
| otherwise you end up with Perl6MultiSub being created in .HLL 'steme' | 16:09 | ||
| instead of 'parrot' | |||
| NotFound | Tene: yes, but I'm not sure if putting the .HLL 'parrot' after the lang HLL is a tested way. All test I've do doed it before the .HLL 'lang' | ||
| Tene | but rakudo definitely works just fine when loaded like that. I can load and use rakudo from cardinal exactly the same way. | ||
| NotFound: rakudo currently relies on that behavior working. it uses .HLL 'parrot' in just a few files to add things to core parrot classes. | 16:10 | ||
| NotFound | Tene: yes, but that bunch of hacks and workarounds does not help to debug the problems. | ||
| Tene | What hacks and workarounds? | 16:11 | |
| The only workaround is putting the load_bytecode call in .HLL 'parrot', which I'm quite confident wouldn't cause problems here. | |||
| And works fine in several other contexts. | 16:12 | ||
| NotFound | Mixing HLLs in one file, guessing HLLs, using include instead of loading... | ||
| Tene | What is being guessed? | 16:13 | |
| NotFound | The HLL in the 'register' method | ||
| Tene | It doesn't guess the HLL, it fetches it. It's not wrong there. Add a 'say' after it's fetched to confirm. That part of P6object has worked properly for a very long time. | 16:15 | |
| particle | mixing hll in one file is not a hack, it's a supported feature. | 16:16 | |
| NotFound | particle: I remember have seen a question about that in the mailing list without a clear answer. | 16:17 | |
| nopaste | "tene" at 166.70.38.237 pasted "confirming the HLL in P6object" (73 lines) at nopaste.snit.ch/16786 | ||
| particle | ok, well for a long time it's been a supported feature, but maybe there are more recent questions i don't know about it. | ||
| s/it/.$/./ | 16:18 | ||
| Tene | I don't remember seeing that question. I must have missed it. | 16:19 | |
| NotFound | Maybe I'm wrong, I'll try to find it later. | ||
| nopaste | "NotFound" at 213.96.228.50 pasted "Another test..." (25 lines) at nopaste.snit.ch/16787 | 16:23 | |
| NotFound | Is something wrong in this test? | ||
| Tene | did you trim 'parrot' lines from the output? | 16:24 | |
| NotFound | No, is all the output except last lines of backtrace | 16:25 | |
|
16:26
AndyA joined
|
|||
| NotFound | $ ./steme nap.scm | 16:27 | |
| parrot | |||
| perl6(13 times) | |||
| Segmentation fault | |||
| purl | (Core dumped) | ||
| Tene | look at my paste for the same thing | ||
| ... oh, I know what it is. | |||
| I think | |||
| NotFound | Strange that difference between the pbc and the fakecutable | ||
| nopaste | "tene" at 166.70.38.237 pasted "Oops, forgot that step" (5 lines) at nopaste.snit.ch/16788 | 16:28 | |
| Tene | Parrot doesn't complain when it's unable to find things that are loadlib'd, it just doesn't load them, and then later Rakudo references classes from custom PMCs that aren't loaded. | 16:29 | |
| try that. | |||
| check with strace to confirm that they get found | 16:30 | ||
|
16:30
Austin_Hastings joined
|
|||
| Tene | strace -estat is what you want. | 16:30 | |
| NotFound | The difference between the fakecutable and the pmc, then, smells like they are using different configs | 16:31 | |
| Tene | That sounds possible. They work identically for me. | ||
| So, I'm no help here. | 16:32 | ||
| NotFound | Yes, with that links the pbc fails the same way as the fakecutable | 16:33 | |
| Tene | OK, good | ||
|
16:34
Psyche^ joined
|
|||
| NotFound | But with just one perl6 in the output in both now.... uh... let me build steme again | 16:34 | |
| No, the pbc now crash with just 2 parrot and 1 perl6, and without the die message | 16:36 | ||
| The segfault is inside a deep stack of mark calls, triggered by some object instantiation. | 16:40 | ||
| Tene | Yes, that's what I see too. I posted my bt on gist. | ||
| does yours look the same? | |||
| cotto | seen allison | 16:41 | |
| purl | allison was last seen on #parrot 1 days, 15 hours, 3 minutes and 36 seconds ago, saying: and, yes, base_type comparisons will work fine for this (and be very fast) [Jun 3 01:33:45 2009] | ||
| NotFound | Tene: no, there is a PMCProxy in mine | 16:42 | |
| Tene | NotFound: you run under gc-debug? | 16:43 | |
| NotFound | Tene: no, default options for all | ||
| In both cases the marks are triggered by get_new_pmc_header. Looks like a gc related problem somewhere before. | 16:45 | ||
|
16:49
darbelo joined
|
|||
| cotto | Hi darbelo. How goes the test writing? | 16:50 | |
| NotFound | Regarding the loadlib failing silently, I think a dlfunc_nonull, or alternatively a dlfunc_maybenull, will be helpful. | 16:51 | |
| Triggering an excpetion if you absolutely need that func. | |||
| Someone objects adding dlfunc_nonnull to experimental.ops? | 16:54 | ||
| darbelo | NotFound: ISTR that, in PIR, if you do $Pn = loadlib 'foo', the truth value of $Pn tells you if the loadlib failed. | ||
| NotFound | darbelo: yes, but lots of code doeesn't check at all | ||
| Mmmm... I can try a simpler approach: check the result in the debugger runloop | 16:56 | ||
| Or maybe a more generic solution may be to have a NCI PMC that evaluates to false and dies if invoked. | 16:58 | ||
| Looks like the NCI PMC need no changes to do that. | 17:01 | ||
| darbelo | cotto: slow, lots of interrruptions lately as I'm planning my birthday party. | 17:02 | |
| cotto | Well, happy birthday then! | ||
| NotFound | excepcion = new 'Birthday' | 17:04 | |
| darbelo | Thanks, I'll be mostly useless today, but should be back on track by tomorrow. | ||
| NotFound: you didn't check if the loadlib failed :) | 17:05 | ||
| NotFound | darbelo: I also didn't check my ortography | 17:06 | |
| darbelo | Don't worry, I don't expect people to use accented letters on IRC ;) | 17:07 | |
| pmichaud | (loadlib) does it help at all if perl6.pir does the .loadlib directives _before_ the .HLL ? | ||
| (since it doesn't really matter to the loadlib itself) | |||
| NotFound | darbelo: english ortography, not spanish :D | ||
| cotto | party = new ['Happy';'Birthday'] | 17:09 | |
| throw party | |||
| NotFound | I'm testing now returning an unitialized NCI instead of Undef in dlfunc, nothing changes in the steme problem. | ||
| Forget what I said before, the difference between the pbc and the fakecutable was because a wrong symlink. I still don't understand why the symlink absence does not affect both. | 17:16 | ||
| purl | NotFound, I didn't have anything matching what i said before, the difference between the pbc and the fakecutable was because a wrong symlink. i still don't understand why the symlink absence does not affect both | ||
| NotFound | purl: no wonder | ||
| purl | NotFound: huh? | ||
| particle | hee | ||
| NotFound | AFK for a while | 17:22 | |
| dalek | rtcl: r431 | coke++ | trunk/runtime/builtin/ (50 files): Add a tcl-only faux-profiler so we can at least figure out which functions |
17:36 | |
| cotto | When calling subs in pir, is 'foo'() or foo() the preferred form? | 17:43 | |
| for a sub named foo | |||
| jonathan | cotto: I tend to use foo if it's all \\w+ chars. | 17:53 | |
| cotto: But the method form that let you write $P0.bar went away, so maybe the unquoted version of the sub one may too...though I haven't heard any plans for that. | |||
| particle | i prefer quotes | 17:55 | |
| cotto | ok. For some reason I though the unquoted version was going away, but I don't like all the extra quotes. | ||
| dalek | rtcl: r432 | coke++ | trunk/runtime/ (3 files): - collapse several pir.'emit'() calls into a single call. |
||
| particle | i don't like the quotes, but i use them defensively | 17:56 | |
| pmichaud | I haven't heard anything definitively about sub quotes and names. I tend to always use them to avoid the possibility of conflicting with a symbol name (which does occur). | 17:58 | |
| dalek | rrot: r39391 | cotto++ | branches/pmc_pct/compilers/vtdumper/vtdumper.pir: [vtdumper] add code to freeze the past to a file |
17:59 | |
| cotto | speedy | ||
| dalek | rtcl: r433 | coke++ | trunk/tools/profiler.pl: Add script to dump to summarize the .prof output |
18:01 | |
| rrot: r39392 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (3 files): [vtdumper] start writing some tests |
18:03 | ||
| Infinoid | particle: ping | 18:13 | |
| particle | Infinoid: pong | ||
| Tene | pmichaud: no, that doesn't help with loadlib. | 18:19 | |
| pmichaud | Tene: so, it has to do with the load_bytecode/load_library being called from a HLL? | 18:21 | |
| dalek | rtcl: r434 | coke++ | trunk/runtime/variables.pir: use more .tailcall |
18:30 | |
| rtcl: r435 | coke++ | trunk/runtime/variables.pir: remove unneeded clones, use .tailcall |
18:35 | ||
| Tene | pmichaud: yes, exactly | 18:39 | |
| dalek | rtcl: r436 | coke++ | trunk/runtime/builtin/ (2 files): code cleanup, remove unused vars |
||
| pmichaud | I would not be at all opposed to having HLLCompiler provide a 'load_bytecode' method that does the load_bytecode from the Parrot HLL :-) | 18:44 | |
| so that instead of | |||
| load_bytecode file | |||
| one does | |||
| compiler.'load_bytecode'(file) | |||
| (which would then occur from the 'parrot' HLL :-) | 18:45 | ||
| or something equally silly like that. | |||
| maybe even | |||
| compiler.'parrot_load_bytecode' | |||
| or even still | 18:46 | ||
| $P0 = get_root_symbol ['parrot';'PCT';'HLLCompiler'], 'load_bytecode' | |||
| $P0(file) | |||
| those might be reasonable (as in "workable") workarounds. | |||
| particle | .'load_root_bytecode'() | 18:47 | |
| pmichaud | it's not really loaded at root, so no. | ||
| particle | oops, sorry, think-o | 18:48 | |
| i meant 'load_parrot_bytecode', following 'get_root_namespace' etc | |||
| however that sorta implies load_hll_bytecode and load_current_bytecode, and that last one is confusingly named | 18:49 | ||
| Whiteknight | Tene++ # finding me a helper | 18:50 | |
| pmichaud | except there's no concept in parrot of 'load_hll_bytecode' or 'load_current_bytecode. | 18:51 | |
|
18:51
gryphon joined
|
|||
| pmichaud | bytecode is loaded into the namespace given by information in the bytecode itself, not in the caller. | 18:51 | |
| really the code is just | |||
| .namespace ['PCT';'HLLCompiler'] | 18:52 | ||
| .sub 'load_bytecode' | |||
| .param string filename | |||
| load_bytecode filename | |||
| .end | |||
| actually, come to think of it, I suspect I can solve it in rakudo's actions.pm. | 18:53 | ||
| and not need the extra stuff. | |||
|
18:54
ruoso joined
|
|||
| Tene | Whiteknight: looks like he's going to work out? | 19:17 | |
| Whiteknight | yeah, hes on the team | 19:19 | |
| cotto | "he"? | 19:23 | |
| purl | "he" is, like, a typo for "she" | ||
|
19:24
autark joined
|
|||
| Whiteknight | cotto: Tene helped me find a developer for a contract I'm working on | 19:28 | |
| cotto | This is nice. I seem to have found a 1-line imcc segfault. | 19:30 | |
| Whiteknight | really? Do tell | ||
| nopaste | "cotto" at 96.26.202.243 pasted "one-line imcc segfault" (3 lines) at nopaste.snit.ch/16789 | ||
| cotto | tecnhically 3 lines, but 2 aren't interesting | 19:31 | |
| it'll probably be an easy fix | 19:32 | ||
| Whiteknight | wow, that one function call causes a segfault? | 19:35 | |
| cotto | Anyone here care to fix it? If not I'll just file a quick tt. | ||
| Whiteknight | that's rediculous | ||
| yeah, do the TT | |||
|
19:42
burmas joined
19:44
darbelo joined
|
|||
| dalek | TT #737 created by cotto++: imcc segfault when assigning to undefined retval | 19:45 | |
| cotto | iwbn if the tickets from trac had something less redundant than '[parrot-tickets] [Parrot]' as a prefix | 19:52 | |
|
19:52
burmas left
20:04
Steve_H left
|
|||
| dalek | rrot: r39393 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (2 files): [vtdumper] add some more tests for function parsing |
20:23 | |
| cotto | It's surprisingly painless to manipulate a past in pir. | 20:59 | |
| dalek | rrot: r39394 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (3 files): [vtdumper] add tests for sections, factor out some repeated code |
21:00 | |
|
21:03
Austin_Hastings joined
|
|||
| Tene | I should post that segfault to the list... | 21:13 | |
| cotto | Mine or another? | 21:23 | |
| Tene | Mine. | 21:25 | |
| particle | what's with all the segfaults recently? did chromatic go on a bender and put easter eggs in the gc? | 21:34 | |
| Tene | this is the first one I've seen in a while. | ||
| jonathan | I'm generally managing to make Parrot segfault less these days that I used to. | 21:36 | |
| I did find one the other day, but it was the first segfault that wasn't self-induced I'd had for a while. | 21:37 | ||
|
21:37
Whiteknight joined
|
|||
| Tene | That GC segfault with steme and other langauges is frustrating, though | 21:37 | |
| jonathan | Rakudo is in a bizzare situation where we can't run it under -G (at least, last I checked) because it explodes. | 21:38 | |
| particle | 'tis bizarre, indeed | ||
| jonathan | On Win32 anyway. | ||
| Tene | Ah. | ||
| jonathan | I didn't manage to make much headway into why. | 21:39 | |
| Tene | I was gonna say... works fine for me. | ||
| jonathan | Well, I didn't try for a few days at least, maybe over a week. | ||
| Tene | purl: msg masak Had something to talk to you about... maybe I'll have remembered by the time you get this | 21:41 | |
| purl | Message for masak stored. | ||
|
21:54
eternaleye joined
|
|||
| cotto has had enough of tests for the day | 21:56 | ||
| dalek | rrot: r39395 | cotto++ | branches/pmc_pct/compilers/vtdumper/t (5 files): [vtdumper] add the last set of tests, plus some code simplification |
21:57 | |
|
21:58
Limbic_Region joined
22:03
eternaleye_ joined
|
|||
| dalek | rrot: r39396 | cotto++ | branches/pmc_pct/compilers/vtdumper (2 files): [vtdumper] fix whitespace and remove an unneeded file |
22:07 | |
|
22:09
mj41 joined
22:32
rg joined
22:33
kid51 joined
22:34
bacek joined
22:48
dan joined
|
|||
| bacek | Good morning | 22:50 | |
| purl | And good moroning to you, bacek. | ||
| dan | Is there functional data structures PMCs planned? | ||
| bacek | Infinoid: (dalek) Yes. At least for branches. | 22:51 | |
| dan: for example? | |||
| dan | For instance a list where I can add an item and get a new list back that include the new element leaving the old list intact but that shares much of the old list so it incurs minimal overhead. | 22:53 | |
| Data structures that are the bread and butter of functional languages. | |||
| dalek | rrot: r39397 | jkeenan++ | trunk/MANIFEST: Add some files that came in with recent merges. |
22:54 | |
| Austin_Hastings | Ah, the infamous LinkedList PMC. | ||
| dan | The point of functional data structures is to be immutable. Every "modification" only yield a new structure. Linked List are not immutable. | 22:55 | |
| Austin_Hastings | I stand corrected. | 22:57 | |
| In that case, probably not. | |||
| bacek | dan: I don't that anyone going to implement them in parrot. But you can implement them as DynPMC in your HLL | ||
| dan | What are DynPMCs? | 22:58 | |
| purl | DynPMCs are treated the same way as pmcs, as far as dumps go | ||
| Whiteknight | dan: dynpmcs are PMC types, written in C, that get dynamically loaded into Parrot at runtime | 22:59 | |
| dan | So they are exactly like PMCs but user-written and loaded at runtime? | ||
| Austin_Hastings | They're better than regular PMC's, because when your DynPMC causes the tcl regression tests to fail, Coke's head will explode. | 23:01 | |
| :) | |||
| darbelo | Actually, that would only happen if Coke incorporated those DynPMCs into partcl. | 23:02 | |
| bacek | dan: yes, they are regular PMCs. | ||
| Austin_Hastings | Of course, you have to load them. So they can't be primitive types without going through the load-and-install process first. But after that, you're okay. | ||
| darbelo: Are you sure? | 23:03 | ||
| purl | You still have ALL THREE lifelines left! | ||
| darbelo | I've broken the decnum-dynpmcs a few times and nobody noticed. | 23:04 | |
| Austin_Hastings | I was under the impression that Bacek had committed pod update changes to a separate branch and *still* caused partcl to regress. | 23:05 | |
| darbelo | a dynpmc that you haven't loadlib-ed can't harm you. So to speak. | ||
| bacek | Austin_Hastings: I didn't touch pods! | ||
| Austin_Hastings | laugh | ||
| darbelo | dan: Undocumented as it is the decnum-dynpmcs project might be of interest to you. | 23:06 | |
| dan | What is it? | ||
| purl | it's it! | ||
| darbelo | decnum-dynpmcs is code.google.com/p/decnum-dynpmcs/ | 23:07 | |
| dalek | TT #266 reopened by jkeenan++: Packfile API cleanup: rename Parrot_readbc to Parrot_pbc_read, _loadbc => ... | ||
| darbelo | decnum-dynpmcs is also a 2009 GSoC porject | 23:08 | |
| purl | okay, darbelo. | ||
| darbelo | decnum-dynpmcs is also a set of 'big' decimal arithmetic types for parrot. | 23:09 | |
| purl | okay, darbelo. | ||
| darbelo | dan: sorry, just trainig the bot a bit. | ||
| purl: decnum-dynpmcs? | |||
| purl | it has been said that decnum-dynpmcs is code.google.com/p/decnum-dynpmcs/ or a 2009 GSoC porject or a set of 'big' decimal arithmetic types for parrot. | ||
| darbelo | It is an example of how to build dynpmcs that live outside the parrot core and the scope of a particular language. | 23:11 | |
| dan | How hard would it be to share structural data between PMCs? | 23:12 | |
| Austin_Hastings | dan: You mean between separate instances of the same PMC (class) ? | 23:13 | |
| dan | Yes | ||
| Austin_Hastings | It's fairly easy. (Maybe too easy.) | 23:14 | |
| Think of them as C++ classes. | |||
| You've got some "initial" data item. | 23:15 | ||
| You create a new PMC, based on the "initial" pmc, which "edits" the initial value somehow. | |||
| dan | Lots of functional data structures are trees. I can get a tree to give me another tree that points at most of his own leafs plus some new ones execpt some old ones. I want the leafs that no tree is looking at anymore (because it has been garbage collected) to be garbage collected to. | ||
| Austin_Hastings | I was just going to say that you have to maintain your references correctly, for GC purposes. | 23:16 | |
| If you have a look at the "Namespace" pmc, you'll see an example of this. Each namespace has a link to its parent. (Namespaces are a tree. Surprise.) | 23:17 | ||
| darbelo | dan: What you probably want is for the leaves to be PMC's themselves, and make the 'tree' PMC a collection of pointers. | ||
| Austin_Hastings | Yeah. | 23:18 | |
| darbelo++ | |||
| Maybe a resizable array of node indices, with the ancestor as backing store. | |||
| bacek | Actually you don't even need new PMC. Hash behave exactly in this way iirc | 23:19 | |
| Hash.clone makes shallow copy leaving values untouched | |||
| darbelo | bacek: Yes but the interface for a lispy-list is quite different from a hash. | 23:20 | |
|
23:20
tetragon joined
|
|||
| darbelo | It might work as a subclass, tho. | 23:20 | |
| bacek | darbelo: you can implement your class in PIR on top of Hash | 23:21 | |
| dan | Yes, it makes a lot of sense to do that. | ||
| Austin_Hastings | dan: What behavior are you looking for? | ||
|
23:23
snarkyboojum joined
|
|||
| dan | What behaviour am I looking for in what? | 23:23 | |
| Austin_Hastings | In your data structures. | ||
| dan | Immutability and cheap creation of new structures. | ||
| Austin_Hastings | For instance, parrot arrays tend to be lists, more than arrays. This wouldn't be a great thing if you wanted indexes to be one of your inherited traits. | 23:24 | |
| dan | There's a functional structure called a finger tree that lets you make a list out of a tree so you don't have to reindex everything all the time you create a new list but I haven't completely grokked it yet. | 23:25 | |
| It's based around having nodes know how many leaves are under them so you can compute the index quickly. | |||
| Austin_Hastings | Sure. Similar to nested sets. | 23:26 | |
| But if I have a list, like @a = (1, 2, 3), and I say @b := @a, that's a cheap copy. (Both ref the same data) | |||
| Now when I say @b.unshift(0), presumably you want to fork @a and @b, so that @a = (1, 2, 3), while @b = (0, 1, 2, 3), right? | 23:27 | ||
| dan | yes | ||
| Austin_Hastings | So one way to do that would be to treat the two "arrays" as "lists." In that case, you could still be storage-efficient, because you could make @a be a sub-list or sub-tree of @b, right? | 23:28 | |
| dan | Probably. | ||
| purl | Really? Probably? Are you Certain it's not certain? Are you sure it's unsure? I think you need to look Because \\ an asshole. | ||
| Austin_Hastings | But if you wanted them to be "arrays" and not "lists" it wouldn't work so well, because you would want a[2] to return 3, and b[2] to return 2, etc. | 23:29 | |
| Someone has been teaching the robot bad things. | |||
| dan | Conceptually, they are frozen arrays because they are immutable but in practice, they don't have to be. | 23:30 | |
| Austin_Hastings | If you store them as trees, or lists, then your index operation is expensive. | ||
| If you store them as arrays, some other stuff gets expensive. | |||
| (Insert, delete, you know the drill.) | |||
| So you should probably develop a priority list of operations. | 23:31 | ||
| dan | There are clever algorithms to work around that but I'm just starting to get into them. | ||
| Austin_Hastings | Right. | ||
| It's a question of priorities. | |||
| Some things you will get "for free" based on implementation. Other things you have to work at. | 23:32 | ||
|
23:32
patspam joined
|
|||
| darbelo | Austin_Hastings: the finger-trees dan mentioned are a way to make "lists" have O(1) indexing. | 23:33 | |
| They are trees where all the leaves are at the same (bottom-most) level | 23:34 | ||
| dan | I heard about a vlist that would do the same job, provided you only append at the end. Clojure uses them. | 23:35 | |
| darbelo | A "list you only append at the end" sounds like an array to me. | 23:36 | |
| Austin_Hastings | Okay, sounds like dan will be working on a set of Tree PMCs. | ||
| :) | |||
| dan | Yes, sounds like it :) | ||
| Lots of functional structures are built around laziness, is easy it to do in parrot? | 23:38 | ||
| darbelo | It depends on how lazy you want to be :) | ||
| Laziness would probably require a lot of work ;) | |||
| dan | Isn't Larry Wall touting the benefits of laziness since years? :-P | 23:39 | |
| darbelo | That's becouse he already did the hard work. Now he just reaps the beneffits. | 23:40 | |
| dan | By laziness I mean lazy evaluation. | 23:41 | |
| darbelo | And now that you mention it: rakudo is supposed to have some lazy stuff in it. So lazy behaviour must be possible on parrot. | ||
| I don't know how easy it is to do. | 23:42 | ||
| Austin_Hastings | Well, closures + continuations + coroutines = defer as much as ever you can. | 23:43 | |
| dan | Is there an O'Reilly book planned to come out when Parrot 2.0 is released? | 23:44 | |
| Austin_Hastings | dan: Don't know. | 23:47 | |
| dan | Gotta go. Thanks for the help | 23:50 | |
| Austin_Hastings | sure. adios | ||