|
Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, finish exceptions_refactor branch | GSoC students, please read trac.parrot.org/parrot/wiki/GSoCersStartHere Set by moderator on 12 May 2010. |
|||
| dalek | p-rx: 838ad67 | pmichaud++ | CREDITS: Update CREDITS, courtesy bacek++. |
00:02 | |
| bacek | pmichaud, subst doesn't work in official nqp-setting. Know issue? | 00:03 | |
| cotto_work | It used to not compile. Sounds like it's getting better. | 00:04 | |
| pmichaud | bacek: no, not known. | 00:05 | |
| bacek: I didn't have any tests for them :) | |||
| bacek | pmichaud, fair enough :) | ||
| cotto_work | Should we hold off on the merge until after the release? | ||
| bacek | pmichaud, match/subst aren't in generated setting.pir file... Strange... | 00:07 | |
| cotto_work | sounds like yes | ||
| pmichaud | might be commented out somehow | 00:08 | |
| looking. | |||
| it's in the .pir file that I have | 00:09 | ||
| (in nqp-rx) | |||
| checking parrot | |||
| oh, those should probably be 'our sub', too. | 00:10 | ||
| come to think of it. | |||
| purl | rumour has it come to think of it is how the zombie monkies come in the night and pluck the brains from unsuspecting children while they sleep | ||
| pmichaud | otherwise they're lexically scoped. | ||
| bacek | pmichaud, ah. Makes sense. | ||
| pmichaud | oh. | 00:11 | |
| the nqp-setting.pm that got checked in to stage0 is an older copy | |||
| that's.... odd. | |||
| sorear | subs aren't lexically scoped be default in nqp | ||
| they get lexical aliases, yes, but they also live in the namespace | 00:12 | ||
| pmichaud | oh. | ||
| that's supposed to be a deprecated misfeature, I think. | |||
| that was there for compatibility with earlier versions of nqp. | |||
| (from when sub declarations were 'our' by default) | 00:13 | ||
| brb | 00:14 | ||
| cotto_work | If I can't get it merged before I go to bed, I'll just hold off until after the release. | ||
| bacek | cotto_work, it's merged. Just need few tweaks in nqp-setting | 00:16 | |
| cotto_work | great! | 00:17 | |
| pmichaud | working on nqp-setting fix | 00:23 | |
| sorear | pmichaud: lexical-persistence-2 just passed spectests | 00:24 | |
| dalek | p-rx: 7d5a8db | pmichaud++ | src/stage0/ (4 files): Update bootstrap with correct nqp-setting.pm . |
00:29 | |
| bacek | pmichaud, github.com/bacek/nqp-rx/commit/304b...a33047aa11 | 00:31 | |
| Test for subst. | |||
| pmichaud | I've forgotten how to cherry pick from remote repos | ||
| bacek | :global is slightly broken. | 00:32 | |
| sorear | pmichaud: git remote add bacek git://github.com/bacek/nqp-rx.git | ||
| git remote update | |||
| git cherry-pick bacek/master | |||
| bacek | "git cherry-pick <sha1>" actually | ||
| pmichaud | Fetching bacek | ||
| fatal: github.com/bacek/nqp-rx/info/refs not found: did you run git update-server-info on the server? | |||
| error: Could not fetch bacek | 00:33 | ||
| sorear | git:// | ||
| pmichaud | oh, nm | ||
| right | |||
| that's what I was doing wrong | |||
| bacek: 05-subst passes on my system | 00:35 | ||
| should it? | |||
| bacek | yes | ||
| pmichaud | oh. no test with :global yet? | ||
| bacek | uncomment test for :global | ||
| line 12 | |||
| purl | i heard line 12 was the open statesments | ||
| bacek | purl, forget line 12 | ||
| purl | bacek: I forgot line 12 | ||
| pmichaud | the test is wrong | ||
| it should be :global | |||
| bacek | I still got Null PMC access in find_method('ACCEPTS') | 00:36 | |
| pmichaud | right | ||
| just a sec | |||
| missing a '$' in match | 00:37 | ||
| now it works | |||
| bacek++ | |||
| pushed as ad5739f | 00:38 | ||
| updating bootstraps | 00:39 | ||
| dalek | p-rx: f529398 | bacek++ | t/setting/05-subst.t: Add test for subst |
00:40 | |
| p-rx: ad5739f | pmichaud++ | (2 files): Fix bug in match() (which was manifesting itself in subst() :global). |
|||
| pmichaud | bacek: want/need commit privs to nqp-rx? | 00:41 | |
| bacek | pmichaud, yes. I did ask for it already :) | ||
| pmichaud | oh, sorry | ||
| added. | |||
| bacek | thanks! | ||
|
00:42
plobsing joined
|
|||
| pmichaud | we need to start getting nqp-rx onto a release cycle, I suspect. | 00:42 | |
| was going to do that in decemberish but got sidetracked with rakudo and other issues | |||
| bacek | Something like "1 week before parrot's release"? | 00:43 | |
| pmichaud | that was the plan, yes. :) | ||
| bacek | Sounds good :) | ||
.oO( Why vtables aren't exposed as methods?.. ) |
00:44 | ||
| pmichaud | they can be... it just doesn't happen by default | ||
| dalek | p-rx: 7516db0 | pmichaud++ | src/stage0/ (4 files): Update bootstrap. |
00:46 | |
| sorear | it appears that Rakudo is the *only* NQP-based language which uses lexicals | 00:48 | |
| cotto_work | pmichaud, I'd appreciate your input on trac.parrot.org/parrot/wiki/LoritoRoadmap when you have some time. | ||
|
00:48
rurban_ joined
|
|||
| pmichaud | sorear: ? | 00:50 | |
| nqp updated in r46619, subst() and match() should be working now. | 00:51 | ||
| NQP uses lexicals. :-) | |||
| cotto_work | nqp is definitely based on nqp | ||
| pmichaud | and at one time pynie was using lexicals... although it may have since switched to a different toolchain | 00:52 | |
| and I think lolcode does also | |||
|
00:53
eternaleye joined
|
|||
| Tene | lolcode uses lexicals. | 00:55 | |
| my scheme compiler uses lexicals. | 00:56 | ||
| pmichaud | i even think partcl uses lexicals, although I might be wrong about that. | ||
| Tene | cardinal uses lexicals | ||
| although not upgraded to nqp-rx | |||
| dalek | rrot: r46619 | pmichaud++ | trunk/ext/nqp-rx/src/stage0 (4 files): Update nqp-rx with match/subst fixes. |
00:57 | |
| ttbot | Parrot trunk/ r46619 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/311643.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | ||
| sorear | pynie is also not on nqp-rx | 01:02 | |
| purl | okay, sorear. | ||
| sorear | scheme is also not on nqp-rx | ||
| purl | okay, sorear. | ||
| sorear | lua is also not on nqp-rx | ||
| purl | okay, sorear. | ||
| Tene | steme is on nqp-rx | 01:03 | |
| sorear | steme is not linked from the master list of Languages on the parrot wiki | ||
| steme? | |||
| purl | steme is Tene's example scheme compiler for Parrot at github.com/tene/steme/ | ||
| dalek | p-rx: 05c8f66 | bacek++ | src/setting/Regex.pm: Use StringBuilder in subst instead of manually collect pieces. |
01:09 | |
| plobsing | Is there a good way to run parrot's tests with parrot executing a user-specified PIR snippet before every test file? | 01:18 | |
| dalek | p-rx: 71140f0 | pmichaud++ | src/setting/Regex.pm: Eliminate extra $repl_string variable bind+lookup from subst(). |
01:20 | |
| ttbot | Parrot trunk/ r46620 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/311685.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 01:25 | |
| dalek | rrot: r46620 | plobsing++ | trunk (8 files): add --without-extra-nci-thunks option to Configure to allow building without unnecessary static thunks |
01:31 | |
| bacek | msg cotto I want to postpone merge after release... | 01:44 | |
| purl | Message for cotto stored. | ||
| dalek | rrot: r46621 | bacek++ | branches/ops_pct (60 files): Merge branch 'master' into ops_pct_local \tMANIFEST \tMANIFEST.generated \tconfig/gen/makefiles/root.in |
01:48 | |
| purl | i guess MANIFEST is useful for lots of stuff and don't forget to regenerate the manifest with perl tools/dev/mk_manifest_and_skip.pl, unless i am using git-svn | ||
| purl | MANIFEST.generated is wrong. | ||
| purl | i guess config/gen/makefiles/root.in is what generates parrot/Makefile | ||
| rrot: r46622 | bacek++ | branches/ops_pct (3 files): Regenerate ops using old ops2c.pl to get find_codepoint |
|||
| rrot: r46623 | bacek++ | branches/ops_pct (4 files): Use nqp-setting instead of nqp-settings in opsc |
|||
| rrot: r46624 | bacek++ | branches/ops_pct/ext/nqp-rx (2 files): Copy nqp-rx from trunk. |
|||
| rrot: r46625 | bacek++ | branches/ops_pct/ext/nqp-rx/src/stage0 (4 files): Merge branch 'master' into ops_pct_local |
|||
| rrot: r46626 | bacek++ | branches/ops_pct/MANIFEST: Remove old nqp-settings. |
|||
| rrot: r46627 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops (2 files): Update opsc to modern nqp-setting |
|||
| rrot: r46628 | bacek++ | branches/ops_pct/t/compilers/opsc (3 files): Remove redundant loading of nqp-setting in opsc tests |
|||
| rrot: r46629 | bacek++ | branches/ops_pct/ext/nqp-rx/Rules.mak: Remove circluar deps of nqp-setting.pbc |
|||
| ttbot | Parrot trunk/ r46630 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/311739.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 01:56 | |
| dalek | rrot: r46630 | jkeenan++ | trunk/runtime/parrot/library/HTTP/Message.pir: [codingstd] Correct POD formatting errors. |
02:04 | |
| rrot: r46631 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Trans/C.pm: Explicitely flatten map args (required for nqp-setting). |
|||
| rrot: r46632 | bacek++ | trunk/ext/nqp-rx/Rules.mak: Fix circular dependencies of nqp-setting.pbc |
|||
| ttbot | Parrot trunk/ r46632 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/311762.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 02:07 | |
|
02:17
patspam joined
|
|||
| dalek | rrot: r46633 | bacek++ | branches/ops_pct (9 files): Merge branch 'master' into ops_pct_local |
02:21 | |
| rrot: r46634 | bacek++ | trunk (3 files): Fix build nqp-setting. bacek-- |
|||
| rrot: r46635 | jkeenan++ | trunk (2 files): Set SVN properties on two recently added files. |
|||
| rrot: r46636 | jkeenan++ | trunk/config/auto/extra_nci_thunks.pm: Correct typo in POD. |
|||
| kudo: ddaab3d | (Solomon Foster)++ | src/core/Cool-num.pm: Handle Any.log better: use prefix:<+> to convert both $x and $base. |
02:24 | ||
|
02:26
kid51 joined
|
|||
| bacek | kid51, aloha | 02:31 | |
| msg cotto We forgot about generating oplib/ops.h file... | 02:33 | ||
| purl | Message for cotto stored. | ||
| dalek | rrot: r46637 | bacek++ | branches/ops_pct (5 files): Merge branch 'master' into ops_pct_local |
02:37 | |
| kid51 | bacek aloha back! | 02:39 | |
|
02:41
janus joined
|
|||
| kid51 | Amazing: plobsing added a configuration step today, added the corresponding test file, and got 100% test coverage right off the bat! | 02:43 | |
|
02:43
gbacon_ joined
|
|||
| kid51 | First time *that* has ever happened! | 02:43 | |
| thenceforward.net/parrot/coverage/c...ks-pm.html | 02:44 | ||
| plobsing | kid51: I cargo culted most of it from the stuff you added on the libjit_framebuilder branch | 02:50 | |
| dalek | p-rx: bb798d2 | sorear++ | CREDITS: Add self to CREDITS |
02:52 | |
| sorear | hmm. nqp-rx does not seem to have anonymous classes. | 02:53 | |
| kid51 | I've been looking at it some more just now. | 02:55 | |
| The more I look at it, the more I think it could have been added to something like config/init/defaults.pm. | |||
| The 'auto' group of config steps are supposed to conduct 'auto'matic probes of your system and make config settings based on the results of those probes. | 02:56 | ||
| There's no probe here. It's just a command-line option. | |||
| So I think it can go under 'init' | |||
| plobsing | I thought 'init' was magic somehow | 02:57 | |
| kid51 | Also, why do you have both UPPER and lower case versions of the config setting? | ||
| Couldn't we get by with just one of them? | |||
| plobsing | nope. one's for makefiles, the other for #defines | ||
| kid51 | plobsing: No, believe me, there's *no* magic there. | ||
| It's more mess than magic ;-) | |||
| Well, there's no rush to change that. We can look at it after the release. | 02:59 | ||
| Oh, one other question: In src/nci/extra_thunks.c, I see this: | 03:01 | ||
| !!!!!!! DO NOT EDIT THIS FILE !!!!!!! | |||
| * | |||
| * This file is generated automatically by tools/dev/nci_thunk_gen.pir | |||
| If this is a generated file, why are we storing it under version control? | 03:02 | ||
| plobsing | bootstrapping | 03:03 | |
| purl | bootstrapping is a telltale trait :) | ||
| plobsing | remove it and try building parrot | ||
| kid51 | Okay, then you might want to add something about that to the documentation at the top of that file. | 03:04 | |
| plobsing | It gets autogenerated by the same tool that is supposed to generate similar files that aren't statically compiled into parrot. For those files (which I'd like to see become the majority), the message would make no sense. | 03:05 | |
| kid51 | Is this discussed in a TT or on list somewhere? My understanding of this type of thing is poor. | 03:07 | |
| plobsing | should there be a TT? a wiki page? I'm an expert, so I'm blind to this sort of problem. What all should be explained? | 03:08 | |
| the bootstrapping? the tool? | |||
| IIUC, opsc will need to bootstrap somehow. How does that manage this problem? | 03:12 | ||
| kid51 | The bootstrapping. | ||
| purl | it has been said that the bootstrapping is a telltale trait :) | ||
| plobsing | purl forget bootstrapping | ||
| purl | plobsing: I forgot bootstrapping | ||
| kid51 | 'bootstrapping' is a term which appears very rarely in our documentation. | 03:13 | |
| So some explanation of what the term means in this context, why we're doing it, what's getting bootstrapped, etc., would be helpful. | 03:14 | ||
| kid51 must sleep | 03:15 | ||
| purl | $kid51->sleep(8 * 3600); | ||
| dalek | TT #1639 created by bacek++: StringHandle should be updated to use StringBuilder internally. | 03:18 | |
| TT #1639: trac.parrot.org/parrot/ticket/1639 | |||
|
03:32
bakkdoor joined
03:58
JimmyZ joined
|
|||
| dalek | rrot: r46638 | bacek++ | branches/ops_pct/compilers/opsc/Rules.mak: Add nqp-setting into opsc dependencies. |
04:01 | |
| rrot: r46639 | bacek++ | branches/ops_pct/src/ops/ops.num: Remove get_label/set_label from ops.num (again...) |
|||
| rrot: r46640 | bacek++ | branches/ops_pct (2 files): Reboostrap ops |
|||
| rrot: r46641 | bacek++ | trunk/src/ops/ops.num: Remove get_label/set_label from ops.num. They are experimantal |
|||
|
04:07
Andy joined
04:10
snarkyboojum joined
04:18
abqar joined
|
|||
| dalek | rrot: r46642 | mikehh++ | trunk/MANIFEST: re-generate MANIFEST |
04:19 | |
|
04:43
snarkyboojum joined
|
|||
| dalek | rrot: r46643 | mikehh++ | trunk/ext/nqp-rx/src/stage0: set svn:ignore |
04:52 | |
| rrot: r46644 | mikehh++ | trunk/MANIFEST.SKIP: re-generate MANIFEST.SKIP |
|||
| plobsing | ping Coke | 05:08 | |
|
05:09
snarkyboojum joined
05:24
snarkyboojum joined
|
|||
| dalek | rrot: r46645 | mikehh++ | trunk (2 files): revert - didn't do what I wanted |
05:26 | |
| TT #1632 closed by plobsing++: segfault in Parrot_ImageIO_shift_string | 05:33 | ||
| TT #1632: trac.parrot.org/parrot/ticket/1632 | |||
| rrot: r46646 | plobsing++ | trunk/src/packout.c: dissallow forward references to string constants in PBC |
05:42 | ||
|
05:58
snarkyboojum joined
|
|||
| cotto | bacek, indeed we did | 06:24 | |
| Would there be anything wrong with putting the enum from oplib/ops.h into oplib/core_ops.h? | 06:44 | ||
| that looks like the easiest approach | |||
| I guess it could conceivably annoy anyone who wants to develop an alternative runcore, but I'm not sure if that's something we'll care about. | 06:45 | ||
| bacek | cotto, too many files to change... | 06:49 | |
| but we can "easily" emit if from "ops2c --core" | |||
| cotto | wfm | 06:57 | |
|
06:58
jan joined
07:10
iblechbot joined
|
|||
| dalek | kudo: 82f7ef3 | (Solomon Foster)++ | src/core/Pair.pm: Add Pair.keys and Pair.values. |
07:21 | |
|
07:29
JimmyZ joined
|
|||
| bacek | rubini.us/about/one_point_oh alternative Ruby implementation | 07:34 | |
|
07:56
agricola joined
|
|||
| agricola | Hello. | 07:58 | |
| plobsing | hi | 07:59 | |
| dalek | rrot: r46647 | bacek++ | branches/ops_pct/compilers/opsc/ops2c.nqp: Generate oplib/ops.h from ops2c. |
08:12 | |
| rrot: r46648 | bacek++ | branches/ops_pct/config/gen/makefiles/root.in: Remove old build of ops.h |
|||
|
08:12
fperrad joined
08:23
fperrad_ joined
|
|||
| cotto | d'oh. I just finished doing that. | 08:23 | |
| bacek | cotto, too late :) | ||
| cotto | well, bacek++ then | 08:24 | |
| bacek | cotto, there is a bug in my code - last comma in enum isn't C89 compatible... | 08:26 | |
| cotto | Bah. Nobody cares about C89. | ||
| bacek | except codetest and VC6... | 08:27 | |
| dalek | rrot: r46649 | bacek++ | branches/ops_pct/compilers/opsc/ops2c.nqp: "Fix" ops.h filename. |
08:29 | |
| rrot: r46650 | bacek++ | branches/ops_pct/include/parrot/oplib/ops.h: Add ops.h generated by ops2pm for bootstrapping purpose |
|||
| rrot: r46651 | bacek++ | branches/ops_pct/include/parrot/oplib/ops.h: Reboostrap ops.h using opsc. |
|||
|
08:34
snarkyboojum_ joined
08:48
rurban_ joined
|
|||
| cotto | bacek, I hope you didn't fix that one too. ;) | 08:57 | |
| bacek | cotto, nope | ||
| I'm in my laziness mode now | 08:58 | ||
| cotto | Why does Configure.pl translate $(MAKE) to "make -C"? | 09:03 | |
| That's not even valid for my make. | |||
| bacek | No idea.. | ||
| purl | hmmm... no idea is jays.net/images/noidea.jpg | ||
| cotto | done | 09:06 | |
| any reason not to rip out all the Perl ops code? | 09:07 | ||
| in branch | |||
| bacek | opsrenumber? | ||
| cotto | That's pretty trivial iirc. | 09:08 | |
| bacek | probably | 09:10 | |
| purl | probably is slow if the compiler isn't smart enough to optimize out of the loop the _length call. | ||
| bacek | I never looked at it | ||
| cotto | It's self-contained. I can clobber the ops2c and ops2pm stuff without touching it. | 09:11 | |
| or can I? | |||
| let's see | |||
| bacek | There is only one way to find out! | ||
| nopaste | "moritz" at 192.168.1.3 pasted "Segfault in t/spec/S06-signature/named-parameters.rakudo, with backtrace" (29 lines) at nopaste.snit.ch/20554 | 09:15 | |
| moritz | added as trac.parrot.org/parrot/ticket/1613#comment:1 | 09:19 | |
| bacek | moritz, is it reproduceable? | 09:20 | |
| dalek | rrot: r46652 | cotto++ | branches/ops_pct (2 files): [opsc] avoid trailing comma in op enum |
09:21 | |
| TT #1612 closed by moritz++: parrot change between r46273 and r46316 cause Rakudo regression | 09:32 | ||
| TT #1612: trac.parrot.org/parrot/ticket/1612 | |||
| rrot: r46653 | fperrad++ | trunk (7 files): rename tapir to parrot-prove, |
09:37 | ||
| bacek | cotto, something wrong with opsc. Check ops.h PARROT_OP_find_sub_not_null_p_sc | 09:54 | |
| cotto | yeah | ||
| I'm looking at it | 09:55 | ||
| it's omitting the last numbered op instead of the last op | |||
| bacek | Looks like we don't read last line in ops.num | 09:56 | |
| cotto | I don't think that's the issue | ||
| bacek | find_sub_not_null_p_sc 1232 | 09:57 | |
| cotto | It's parsed fine | 09:58 | |
| It is an off-by-one somewhere | 09:59 | ||
| bacek | yeah... | ||
| But core_ops.c has correct code for this op | 10:00 | ||
| I don't quite understand how it can be... | |||
| cotto | bad keyboard driver | 10:01 | |
| my brain are stop working | 10:02 | ||
| I'll have to wait until tomorrow to hunt for it | 10:03 | ||
| bacek | ok | 10:05 | |
| good night | |||
| cotto | night | 10:07 | |
| dalek | rrot: r46654 | bacek++ | branches/ops_pct/compilers/opsc/src/Ops/Compiler.pm: Fix off-by-one error in numbering ops. cotto++ for hint |
10:43 | |
| rrot: r46655 | bacek++ | branches/ops_pct/compilers/opsc/ops2c.nqp: Fix generating ops.h file |
|||
| rrot: r46656 | bacek++ | branches/ops_pct/include/parrot/oplib/ops.h: Regenerate ops.h |
|||
| bacek | msg pmichaud Any objects on committing support of parsing types in NQP - gist.github.com/402132 ? | 10:49 | |
| purl | Message for pmichaud stored. | ||
| pmichaud | bacek: in general, I try to keep the nqp grammar pretty close to the perl 6 one | 11:02 | |
| bacek | pmichaud, my perl-grammar-fu is too weak to read full perl6 grammar... | 11:03 | |
| ah. scope { ... | <typename> <DECL=multi_declarator> ... } | 11:05 | ||
| "scoped" | |||
| nope... It's for subs. | 11:07 | ||
| Looks like current rakudo grammar doesn't support typed variables. | 11:08 | ||
| Or I totally misunderstand it. | 11:09 | ||
| pmichaud | oh, I know that current rakudo grammar *does* support typed variables. :) | 11:10 | |
| bacek | :) | 11:11 | |
| Yeah. | |||
| pmichaud | you're just looking for the type information in the wrong place | ||
| bacek | scoped { <typename> <DECL=multi> }? | ||
| pmichaud | yeah, that looks right-ish | 11:12 | |
| but it's more important to be close to STD.pm6 than it is to be close to rakudo | |||
| bacek | Are you trying to kill me? :) | ||
| pmichaud | just trying to make sure nqp doesn't stray too far from perl 6 :) | 11:13 | |
| bacek | Reading rakudo's grammar is already challenge! | ||
| Is STD.pm6 still in pugs repo? | |||
| pmichaud | yes | 11:14 | |
| svn.pugscode.org/pugs/src/perl6/STD.pm6 | |||
| anyway, we need to stick close to STD.pm6 if we eventually want to support multis :-) | 11:16 | ||
| bacek | I do want to support multis | ||
| pmichaud | right | ||
| bacek | Actually I want rewrite PCT in NQP :) | 11:17 | |
| pmichaud | so do I, eventually :) | ||
| bacek | And multis are almost "must have" :) | ||
| pmichaud | I've also been wondering if the end result will be my $x is int; instead of my int $x; | ||
| bacek | In Perl6? | 11:18 | |
| pmichaud | in NQP | ||
| bacek | Hmm... Why? | ||
| pmichaud | the first one indicates the type of the container, the second one is a type constraint | ||
| bacek | ("scoped" in rakudo are pretty much same as in STD) | ||
| pmichaud | since what we have in NQP acts more like a coercion/container than a type constraint, that seems to work a bit better | 11:19 | |
| in particular, in Perl 6: my int $x = "4"; throws an exception | 11:20 | ||
| while my $x is int = "4"; would coerce the string into an int | |||
| moritz | nope | ||
| pmichaud | whic is really what Parrot does when placing a string into an int register | ||
| moritz | my $x as int | ||
| bacek | I do want "type constraint" in nqp. Just because I want to use it in ops. | ||
| And generate C code | |||
| moritz | 'is' doesn't coerce, afaict | ||
| pmichaud | moritz: no, but the container could. | ||
| it's not the 'is' that does coercion, it's the container | 11:21 | ||
| (in this case) | |||
| moritz | I'm pretty sure 'my $x is int = "4"' would also die in full Perl 6 | ||
| but then it has a different 'int' container | |||
| pmichaud | right | ||
| I'm just saying that if NQP uses "my int $x" to indicate that $x should be a Parrot int register, we're in for a world of hurt | 11:22 | ||
| anyway, we already know that nqp types will behave differently from Perl 6 types, which is why I'd like to put coercion into the container type and not into type constraints | 11:26 | ||
| so if an NQP 'int' behaves differently from a Perl 6 'int', that's okay-ish. | 11:27 | ||
| but having "my int $x" act like a coercion rather than a constraint strays a bit far from the real semantic. worse, it's too easy to confuse the two notions. | |||
| otoh, if "my int $x as int" is valid Perl 6, indicating both type and coercion, perhaps we do that. (I still haven't seen this officially spec'd, though.) | 11:29 | ||
| bacek | pmichaud, gist.github.com/402156 what about this one? It's stripped down version of STD.pm6 (or Rakudo (which is same)) | 11:41 | |
|
11:47
clinton joined
11:53
khairul joined
11:54
khairul joined
|
|||
| bacek | S05? | 11:54 | |
| purl, S05? | |||
| purl | see dev.perl.org/perl6/doc/design/syn/S05.html or dev.perl.org/perl6/doc/design/syn/S05.html or perlcabal.org/syn/S05.html | ||
|
11:55
Whiteknight joined
|
|||
| moritz | all but the last one are out of date | 11:59 | |
| no, S05 is perlcabal.org/syn/S05.html | |||
| purl | okay, moritz. | ||
|
12:00
kid51 joined
12:01
JimmyZ joined
|
|||
| Whiteknight | good morning, #parrot | 12:02 | |
| bacek | moritz, I can't reproduce your failures... Even on amd64. | ||
| Whiteknight, good morning, mr. Release Manager. | |||
| kid51 | good morning, whiteknight | ||
| moritz | bacek: it doesn't segfault every time I run it | 12:03 | |
| Whiteknight | so, ops_pct isn't merging in before the release? | ||
| bacek | moritz, I tried 5 times in row... On both optimized and non-optimized builds. | ||
| moritz | too bad | ||
| and you have ICU? | |||
| bacek | Whiteknight, I can merge it right now. But I would like not to. | ||
| moritz, yes, I have. | 12:04 | ||
| moritz wonders what else might be cause | |||
| libgmp? | |||
| bacek | moritz, let me check. | ||
| moritz | I can also try to configure without gmp, and see if it still segfaults | 12:05 | |
| but need to finish another spectest run first | |||
| bacek | Installing libgmp3-dev now | 12:06 | |
| dalek | kudo: 16e9537 | moritz++ | src/core/Any-list.pm: accept junctions as matcher argument to first() |
12:08 | |
| pmichaud | bacek: (parsing typenames) looks much better to me. I'd want to comment out the multi_declarator:sym<multi> part, though. Since we don't support multis at all yet, I think I'd prefer not to be parsing them. | 12:15 | |
| kid51 | Can anyone advise where the work that has been done so far in the ops_pct branch puts us on the Lorito roadmap? trac.parrot.org/parrot/wiki/LoritoRoadmap | ||
| pmichaud | kid51: I think just the "opsc" portion. | 12:16 | |
| bacek | pmichaud, next step will be extend PCT to generate :multi :) | ||
| pmichaud | (it's a very significant portion, but that's about as far as I think it gets) | ||
| kid51 | That roadmap page would benefit from a simple definition of Lorito. | ||
| pmichaud | PCT can already generate :multi, bacek. | ||
| Rakudo uses it. :-) | 12:17 | ||
| bacek | pmichaud, wow... How? | ||
| pmichaud | pirflags on the PAST::Block node | ||
| bacek | pmichaud, it's... cheat! | ||
| pmichaud | I'm fine with cheating on that for now. | ||
| bacek | But we can generate proper :multi signature almost for free. | 12:18 | |
| pmichaud | since Parrot's handling of mmd is still slated for some redesign, I'm not wanting to commit to a particular PCT design yet. | ||
| bacek | (There is too many design flaws in parrot...) | 12:19 | |
| moritz | bacek: presence of GMP doesn't make a difference for named-parameters.rakudo | ||
|
12:19
iblechbot joined
|
|||
| bacek | moritz, yes... I still can't reproduce segfault... | 12:19 | |
| moritz | :( | 12:21 | |
| dalek | rrot: r46657 | fperrad++ | branches/ops_pct/t/harness.pir: fix, retrieve the SVN branch name |
||
| pmichaud | bacek: want me to go ahead and add the type parsing to nqp-rx? it'll be basically what you posted, with a fair bit of changes | 12:24 | |
| I can do that now -- I have a short period of time. | |||
| kid51 | Is there anyway to change the name of a wiki page (i.e., its URL) without losing its history? | 12:26 | |
| bacek | pmichaud, yes :) | ||
| (and I missed parsing of types in <signature>) | 12:27 | ||
| pmichaud | kid51: I don't see an obvious way to do it, no. | 12:28 | |
| kid51 | pmichaud: Found workaround | 12:29 | |
| I was trying to link to a page with a name that was not in CamelCase. | 12:30 | ||
| Link would not take if I simply typed: Lorito | |||
| ... cause that's not CamelCase | |||
| workaround: [wiki:Lorito] | |||
| dalek | tracwiki: v4 | jkeenan++ | Lorito | 12:33 | |
| tracwiki: trac.parrot.org/parrot/wiki/Lorito?...ction=diff | |||
| tracwiki: v3 | jkeenan++ | LoritoRoadmap | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff | |||
| tracwiki: v4 | jkeenan++ | LoritoRoadmap | |||
| tracwiki: trac.parrot.org/parrot/wiki/LoritoR...ction=diff | |||
|
12:34
TiMBuS joined
|
|||
| bacek | moritz, bad luck... | 12:35 | |
| I run this "i=0; while ./perl6 t/spec/S06-signature/named-parameters.rakudo; do echo "survive $i"; i=$(( ++i )); done" | |||
| It's passed 21 runs... | |||
| 30... | 12:38 | ||
| moritz, I give up... It passed another 20 runs on optimized build... | 12:42 | ||
| fperrad, are you sure that your last commit belongs to ops_pct branch? | 12:45 | ||
| JimmyZ | not ok 77 - sub params with the same name via renaming# TODO sub params with the same name | 12:47 | |
| not ok 78 - sub params with same name via renaming and different types# TODO sub params with the same name | |||
| not ok 79 - sub params with the same name and different types# TODO sub params with the same name | |||
| bacek: this one? | |||
| bacek | JimmyZ, it's todoed tests. I tried to catch segfault | 12:48 | |
| JimmyZ, TT#1613 | 12:49 | ||
| JimmyZ | oh | ||
|
13:05
joeri joined
|
|||
| dalek | p-rx: 08a765d | pmichaud++ | src/NQP/ (2 files): Add typename parsing to variable declarations. |
13:10 | |
| p-rx: cf979eb | pmichaud++ | src/NQP/Grammar.pm: Enable typename parsing for parameters. Again, this simply for now. |
|||
| rrot: r46658 | bacek++ | branches/ops_pct/t/tools/ops2pm (17 files): Remove tests for old ops2pm. |
|||
| rrot: r46659 | bacek++ | branches/ops_pct/t/tools/ops2cutils (11 files): Remove tests for ops2cutils |
|||
| rrot: r46660 | bacek++ | branches/ops_pct (2 files): Fix make dependencies. fperrad++ |
|||
| rrot: r46661 | bacek++ | branches/ops_pct/MANIFEST: "Regenerate MANIFEST" |
|||
| rrot: r46662 | bacek++ | branches/ops_pct/config/gen/makefiles/root.in: Fix more dependencies of outdated core.pm |
|||
| rrot: r46663 | bacek++ | branches/ops_pct/t/op/01-parse_ops.t: Remove old test for ops parsing. fperrad++ |
|||
| rrot: r46664 | bacek++ | branches/ops_pct/MANIFEST: "Regenerate MANIFIST" |
13:27 | ||
| kid51 | In ops_pct branch, after 'make realclean', I am getting this: | 13:37 | |
| $ svn st | |||
| ? ext/nqp-rx/src/stage0/nqp-setting.pir | |||
| Should that file be removed by 'make clean'? | |||
| pmichaud | yes. | ||
| I'm not sure how to do that, though. | 13:38 | ||
| kid51 | It is generated by something? | ||
| pmichaud | yes. | ||
| it's generated as part of parrot's nqp-rx build process (ext/nqp-rx/Rules.mak) | 13:39 | ||
| kid51 | So it should probably be entered into MANIFEST.generated as well -- correct? | ||
| pmichaud | I'd think no. | 13:40 | |
| it's an intermediate file, used to generate nqp-setting.pbc | |||
| it doesn't get installed | |||
| kid51 | Probably needs to be in list of files governed by target 'ext-clean' | 13:41 | |
| dalek | rrot: r46665 | jkeenan++ | branches/ops_pct (3 files): Remove some directories whose files have been deleted. Remove references to that file to other, long since deleted directories. |
13:45 | |
| kid51 | I see this: | 13:46 | |
| $ fns config/gen/makefiles/ | xargs grep -n NQPRX | |||
| config/gen/makefiles/root.in:1605: $(RM_RF) $(NQPRX_LIB_PBCS) $(NQPRX_LIB_SETTING) parrot-nqp* | |||
| But I can't find any place where NQPRX_LIB_PBCS or NQPRX_LIB_SETTING is defined. | 13:47 | ||
| pmichaud | ext/nqp-rx/Defines.mak | ||
|
13:48
GodFather joined
|
|||
| kid51 | Everything in Defines.mak is a .pbc. This file is a .pir | 13:50 | |
| pmichaud | right | ||
| this is an intermediate file, used to create one of the .pbcs | 13:51 | ||
| sorry if I'm not being more help -- I'm totally unfamiliar with the new makefile build system | |||
| kid51 | fns ext/nqp-rx | grep '.pir$' | ||
| ext/nqp-rx/src/stage0/P6Regex-s0.pir | |||
| ext/nqp-rx/src/stage0/Regex-s0.pir | |||
| ext/nqp-rx/src/stage0/NQP-s0.pir | |||
| ext/nqp-rx/src/stage0/HLL-s0.pir | |||
| ext/nqp-rx/src/stage0/nqp-setting.pir | |||
| Are the other files in ext/nqp-rx/src/stage0/ intermediate files as well? | |||
| pmichaud | no | ||
| kid51 | k | ||
| pmichaud | eventually I expect nqp-setting.pir to go away... just don't have that capability yet. | 13:52 | |
| (we don't have the capability to go directly from HLL to .pbc yet ... we have to go to .pir and then compile that to .pbc) | |||
| nqp-setting.pir is generated from nqp-setting.pm, and is used to create nqp-setting.pbc | 13:53 | ||
| dalek | rrot: r46666 | jkeenan++ | trunk/config/gen/makefiles/root.in: Remove references to long-since-deleted directories. |
14:02 | |
| kudo: 8ef25bd | moritz++ | t/spectest.data: run another test file (for "eager") |
14:09 | ||
| moritz | rakudo: say [+] | 14:10 | |
| EWRONGCHANNEL | |||
| sorry | |||
|
14:10
bakkdoor joined
14:18
Mokurai1 joined
|
|||
| dalek | rrot: r46667 | fperrad++ | branches/ops_pct/runtime/parrot/library/distutils.pir: [distutils] use ops2c fakexecutable instead of ops2c.pl |
14:18 | |
| rrot: r46668 | jkeenan++ | branches/ops_pct (2 files): Create an NQPRX_CLEANUPS target to make sure that intermediate files are |
|||
|
14:25
Casan joined
|
|||
| kid51 | pmichaud: I think 46668 (or 46669 in trunk) takes care of that cleanup problem | 14:26 | |
| pmichaud | okay. There's not a gen/settings.pir, that only existed in the branch iiuc | 14:28 | |
| there should only be src/stage0/nqp-settings.pir | |||
| (there's not even a gen/ subdir in nqp-rx in trunk) | |||
| dalek | rrot: r46669 | jkeenan++ | trunk (2 files): Create an NQPRX_CLEANUPS target to make sure that intermediate files are |
14:35 | |
| rrot: r46670 | fperrad++ | branches/ops_pct/runtime/parrot/library/distutils.pir: [distutils] clean up, only 1 core for dynops |
|||
| kid51 | pmichaud: gen/settings.pir was in makefiles/root.in in branch | 14:39 | |
| ... in an admittedly kludgey-looking line | |||
| pmichaud | kid51: yes, that was there for testing purposes I think, until we decided how it was going to officiallylive | ||
| trunk has the officially correct nqp-rx build sequence | |||
| kid51 | So the one in /stage0/ is the correct one? | 14:40 | |
| pmichaud | yes. | ||
| fperrad | bacek, yes, this fix r46657 is only useful in a branch and it will merged in trunk with the whole branch ops_pct | 14:47 | |
| dalek | rrot: r46671 | jkeenan++ | branches/ops_pct/ext/nqp-rx/Defines.mak: Remove file from NQPRX_CLEANUPS which no longer is created during build. |
14:51 | |
| rrot: r46672 | jkeenan++ | trunk/ext/nqp-rx/Defines.mak: Remove file from NQPRX_CLEANUPS which no longer is created during build. |
|||
| purl | i already had it that way, dalek. | ||
|
15:03
khairul_ joined
|
|||
| dalek | rrot: r46673 | fperrad++ | trunk (2 files): [URI] add scheme 'https' |
15:07 | |
| p-rx: cf5f0c7 | pmichaud++ | src/setting/ (4 files): Make sure setting subroutines are properly package ('our') scoped |
15:08 | ||
| p-rx: c5a3363 | pmichaud++ | build/Makefile.in: Fix test target to rebuild nqp-settings.pbc prior to running tests. |
15:09 | ||
| p-rx: 1232366 | pmichaud++ | src/Regex/P6Regex (2 files): Turn INIT() sub in P6Regex::Actions into a standard INIT {...} block. |
|||
| p-rx: f4c4650 | pmichaud++ | src/NQP/Actions.pm: Adjust so that load_bytecode on a precompiled module automatically lexically-scoped subroutines to be initialized properly inside of modules and classes. |
|||
| purl | modules and classes are both declared with "package", but they are really totally different | ||
|
15:22
tcurtis joined
|
|||
| dalek | a: 68436eb | fperrad++ | setup.pir: use directly TAP/Harness library |
15:35 | |
| lscript: e7e855f | fperrad++ | dynext/pmc/wmls (6 files): use auto_attrs (mandatory now) |
15:43 | ||
| lscript: 4d736e5 | fperrad++ | setup.pir: use directly TAP/Harness library |
|||
|
15:52
lucian joined
|
|||
| dalek | rrot: r46674 | fperrad++ | trunk/tools/dev/mk_language_shell.pl: [language] now PMC needs an attribute mode |
15:57 | |
| rrot: r46675 | mikehh++ | trunk/config/auto/extra_nci_thunks.pm: fix perlcritic failure - hard tabs |
|||
| mikehh | ext/nqp-rx/src/stage0/nqp-setting.pm is failing 5 codetest tests - how do I make sure it is not tested at all - it should not be tested | 16:03 | |
| I tried setting svn:ignore and that was a problem 0 it did not work, any ideas? | 16:04 | ||
|
16:04
joeri joined
|
|||
| mikehh | s/0/-/ | 16:05 | |
|
16:08
shockwave joined
|
|||
| shockwave | purl paste | 16:08 | |
| purl | rumour has it paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans | ||
| nopaste | "shockwave" at 192.168.1.3 pasted "Macro question." (10 lines) at nopaste.snit.ch/20555 | 16:10 | |
| shockwave | Howdy. | ||
| I gotta find a better place to paste, as the above doesn't include line numbers. | |||
| Anyhow. | |||
| My question is about the line: _result = _test."'" . .op . "'"() | |||
| I'm trying to call a specific function when I call the macro, like so: | 16:11 | ||
| .testOperatorFloat('+', 3.14) | |||
| Of course, it gives me an error. | |||
| How can I accomplish passing the name of the method to call on the _test variable? | |||
| dalek | rrot: r46676 | mikehh++ | trunk/t/steps/auto/extra_nci_thunks-01.t: fix perlcritic failure - hard tabs |
16:13 | |
|
16:18
theory joined
|
|||
| shockwave | Solved it. It was easier than I thought. I just had to change the line to this: \t_result = _test. .op () | 16:20 | |
| Since the argument is already quoted, it will be replaced properly. | |||
| dalek | kudo: 92508d6 | moritz++ | (4 files): NYI error messages for feed operators |
16:26 | |
|
16:42
mikehh joined
16:48
rurban_ joined
16:55
ruoso joined
|
|||
| nopaste | "shockwave" at 192.168.1.3 pasted "Possible bug in Parrot." (11 lines) at nopaste.snit.ch/20556 | 17:07 | |
| shockwave | Unless there can be no method named '@' (Why wouldn't it be possible), that is a bug in Parrot. | ||
| Oops, forgot the compiler output: | 17:08 | ||
| Method '@' not found for invocant of class 'Test' | |||
| current instr.: 'parrot;Test;main' pc 17 (tmp.pir:14) | |||
| Change '@' for something else, like '*', and it will work. | |||
| purl | shockwave: that doesn't look right | ||
| shockwave | I'll stand by while someone chimes in. | 17:11 | |
| Thanks | |||
| oh, it seems that it's anything that starts with an @. | 17:12 | ||
| Regular subs, not methods, *can* be named '@'. | 17:17 | ||
| nopaste | "cotto" at 192.168.1.3 pasted "what's wrong with this attempt to use sprintf from nqp?" (8 lines) at nopaste.snit.ch/20557 | 17:58 | |
|
18:01
Andy joined
|
|||
| shockwave | If someone has an idea, I'd like to hear it, please. My language has the ability to overload operator @, and thus creates a method named '@'. So, this is important. | 18:03 | |
|
18:03
theory joined
|
|||
| cotto | found the problem with sprintf | 18:06 | |
| dalek | rrot: r46677 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/OpLib.pm: [opsc] minor cleanup |
18:25 | |
| rrot: r46678 | cotto++ | branches/ops_pct/compilers/opsc (2 files): [opsc] don't spit out excessively precise timing info, be a little more informative |
|||
| rrot: r46679 | cotto++ | branches/ops_pct (13 files): [ops2c] nuke a bunch of obsolete perl ops2c and ops2pm code |
|||
| cotto | d'oh. too eager | 18:26 | |
|
18:41
tetragon joined
|
|||
| dalek | rrot: r46680 | cotto++ | branches/ops_pct (5 files): undo previous commit until opsrenumber is replaced |
18:42 | |
|
18:42
lucian_ joined
18:52
LoganLK joined
|
|||
| cotto | seen allison | 18:54 | |
| purl | allison was last seen on #parrot 3 days, 25 minutes and 59 seconds ago, saying: hah :) [May 12 18:28:47 2010] | ||
| pmichaud | we could put a sprintf() function into nqp-setting | 18:59 | |
| (that works more like the C sprintf) | 19:00 | ||
| cotto: I'm guessing the problem with pir::sprintf was the signature? | |||
| oh, maybe not. hrm. | 19:01 | ||
|
19:01
plobsing joined
|
|||
| pmichaud | also note that an easy way to create a temporary one-element array would be to do | 19:03 | |
| pir::sprintf__ppp("%.3f", [ $end_time - $start_time ]); | |||
|
19:05
pjcj joined
19:06
iblechbot joined
|
|||
| nopaste | "cotto" at 192.168.1.3 pasted "working version" (8 lines) at nopaste.snit.ch/20558 | 19:09 | |
| cotto | I thought there was a syntax for that. | ||
|
19:17
Mokurai joined
19:22
Themeruta joined
19:23
lucian joined
19:31
lucian joined
|
|||
| dalek | rrot: r46681 | cotto++ | branches/ops_pct (6 files): [opsc] move ops.h generation into Ops::Emitter, regenerate ops |
19:32 | |
| tcurtis | Is there any way to check that a PMC has a non-default invoke vtable? | 19:44 | |
| dalek | TT #1640 created by shockwave++: Method names that start with '@' are not recognized. | 19:49 | |
| TT #1640: trac.parrot.org/parrot/ticket/1640 | |||
|
20:06
mariano joined
|
|||
| dalek | rrot: r46682 | fperrad++ | trunk/runtime/parrot/library/LWP.pir: |LWP] fix _new_response() |
20:23 | |
| rrot: r46683 | fperrad++ | trunk (2 files): [LWP] minor refactor |
20:40 | ||
| cotto | tcurtis, there was talk of adding a 'callable' role that sounds like it'd indicate what you're looking for. | 21:06 | |
| It's nice to see that everyone's out enjoying their Saturday. | 21:07 | ||
|
21:07
elmex joined
|
|||
| dalek | rrot: r46684 | NotFound++ | trunk/compilers/imcc/pbc.c: [imcc] fix search for namespace separator in add_const_pmc_sub, TT #1640 |
21:29 | |
| NotFound_gf | shockwave: ping | 21:32 | |
| ttbot | Parrot trunk/ r46684 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/313280.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | 21:33 | |
| shockwave | NotFound_gf, sup. | 21:35 | |
| cotto, What's this 'out' thing. Are you talking about some type of param? | 21:36 | ||
| NotFound_gf | shockwave: I think I've fixed part of the problem in TT #1640 | ||
| ttbot disagree... One moment... | 21:37 | ||
| shockwave | kk | ||
|
21:37
pjcj joined
|
|||
| NotFound_gf | ttbot++ | 21:39 | |
| shockwave | NotFound_gf, question: Why? static const char ns_sep[] = "@@@"; and not const char* ns_sep = "@@@"? | 21:42 | |
| NotFound_gf | shockwave: const char * const is too much const for my taste. | ||
| The array syntax is cleaner in this case, IMO | 21:43 | ||
| shockwave | NotFound_gf, good enought for me. | 21:44 | |
| NotFound_gf: So, what was the outcome? You did: t tbot ++ | |||
| Does that mean it still needs work? | |||
| NotFound_gf | shockwave: fixed now, the usual C89 violation. | 21:45 | |
| dalek | rrot: r46685 | cotto++ | branches/ops_pct (5 files): [opsc] update emitter test, add svn id to checked-in generated files |
||
| NotFound_gf | Declaration after code | ||
| rrot: r46686 | NotFound++ | trunk/compilers/imcc/pbc.c: fix C89 violation from r46684 |
|||
| rrot: r46687 | fperrad++ | trunk/runtime/parrot/library (2 files): [LWP] some stuff for redirect |
|||
| shockwave | NotFound_gf: Sweet. One more question: Isn't the 'static' keyword there superflous? | 21:46 | |
| NotFound_gf | shockwave: some old compilers can recreate it in each call without that. | ||
| And it reflects better the intention, IMO. | 21:47 | ||
| shockwave | NotFound_gf: I think its unecessary. But, it sounds like you have a reason. So, good enough. :-) | 21:48 | |
| Thanks for the fix. I'll recompile as soon as I can. | 21:49 | ||
| My Windows crashed and burned 2 days ago, and I had to re-install, so I don't have some tools, yet. | |||
| Download them now.... | |||
| NotFound_gf | shockwave: please don't close the ticket until the '@@@' gets verified and discussed. | 21:50 | |
| shockwave | Downloading them now^^^, I mean. | ||
| NotFound_gf, I can't close tickets. Only have creation access. | |||
| NotFound_gf | Ok, I'll take cae of it. | 21:51 | |
| shockwave | Thanks, man. | ||
| nopaste | "plobsing" at 192.168.1.3 pasted "[PATCH] winxed :named :slurpy parameter support" (42 lines) at nopaste.snit.ch/20559 | 21:55 | |
| plobsing | NotFound_gf: can you take a look at nopaste.snit.ch/20559 ? | 21:57 | |
| NotFound_gf | plobsing: looking... | 22:00 | |
| plobsing: the reason of the escaping of the name is to avoid conflicts with limitations of imcc, so the fix is not so easy. | 22:03 | ||
| plobsing | limitations of imcc? which ones? | 22:04 | |
| NotFound_gf | plobsing: variable names that looks like PASM registers. | ||
| plobsing | oic | ||
| NotFound_gf | .param int N1 --> Boom | 22:05 | |
| plobsing | I guess it can be made almost identical to the :named :flat handling then | ||
| NotFound_gf | plobsing: I'll llook at it, thanks for the patch. | ||
| plobsing | does anyone have any common NCI functions that can't be called from the current Parrot? | 22:11 | |
| I want to test out my libjit framebuilder library | |||
| bacek | Good morning, #parrot. | 22:15 | |
| plobsing | good afternoon bacek | 22:16 | |
| sorear | 15:15 < sorear> rakudo: say pir::dlfunc__PPSS(pir::loadlib__PS("libm.so"), "sinf", "ff")(1) | ||
| 15:16 <+p6eval> rakudo 92508d: OUTPUTĀ«No NCI thunk available for signature 'ff'ā¤current instr.: '_block14' pc 29 (EVAL_1:0)ā¤Ā» | |||
| perhaps this? | |||
| purl | perhaps this is not limited to perl books. | ||
| plobsing | it works! sorear++ | 22:19 | |
| bacek | plobsing, SHIP IT! | 22:24 | |
| plobsing | it is shipped | 22:25 | |
| sort of | |||
| you just need to install and then "loadlib 'libjit_fb'" | |||
| bacek | Hmm... Looks like libjit isn't packaged for debian... | 22:29 | |
| msg cotto opsc tests shouldn't be in coretest. Can you take care of it? | 22:30 | ||
| purl | Message for cotto stored. | ||
| shockwave | purl | 22:35 | |
| purl | yes, shockwave? | ||
| shockwave | purl paste | ||
| purl | paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste or App::Nopaste or toxic for bots and humans | ||
| nopaste | "shockwave" at 192.168.1.3 pasted "iseq operator not accepting some operand types." (7 lines) at nopaste.snit.ch/20560 | 22:38 | |
| shockwave | Can someone tell me if the above is a bug or standard behavior? | 22:39 | |
| bacek | shockwave, standard behaviour. You have to "cast" both args to same type. | 22:40 | |
| (I think $N in this case) | |||
| shockwave | $P0 is a pmc, but it's an int. So iseq can't take a PMC (that's an int), and a regular int? | 22:41 | |
| That behavior should exist. There so much arm twisting just to do something that should be standard behavior. | 22:43 | ||
| Arg! | |||
| bacek | shockwave, then cast second arg to PMC | ||
| just because Integer PMC can only box/unbox to INTVAL | 22:44 | ||
| And Parrot is VM, PIR is just syntax sugar for assembly, not High Level Language :) | 22:45 | ||
| shockwave | You know what this means. Anytime you working with attributes, regarless whether the other operands are just PODS, then they're both essentiall PMCs. There's gonna be casting all over the place, taking valuable runtime speed. Not good. | 22:46 | |
| Thanks, for the info, though. | |||
| sorear | shockwave: You want to redesign Parrot? Join the club. | 22:47 | |
| I don't think there's anyone here who entirely buys Parrot's design | |||
| Maybe leo or chip | |||
| and if 1 person here remade Parrot in their image, the other N-1 would still hate it | |||
| shockwave | sorear, it's not redesign. These operators: +, -, *, /, and % should accept any conbination or int, floats and PMCs are ints or floats. Otherwise, everyone is forced into output code that shouldn't be needed. | 22:48 | |
| sorear | shockwave: there's no "compare to a native int" vtable op | ||
| bacek | shockwave, "$N0 = $I0" is quite fast. And it actually gives speed because underlying dispatch for ops is much simpler | 22:49 | |
| shockwave | But I bet you still can't do: iseq $P0, $NO | ||
|
22:49
joeri joined
|
|||
| shockwave | I'm not saying that it's not going to take some effort to make it happen. I'm saying the effort would be worth it. | 22:50 | |
| nopaste | "bacek" at 192.168.1.3 pasted "shockwave: we do support casting for math" (9 lines) at nopaste.snit.ch/20561 | ||
| shockwave | I'm not one of the people that doesn't like Parrot's design. I like it. But, and this is expected, some warts need to be worked out as people start adopting it. | 22:51 | |
| tcurtis | shockwave, IMCC has no way of knowing at compile time whether that PMC you got from the attribute is an Integer, a Float, or a P6Regex. As well, what if the behavior of casting $P0 to an int and iseqing it with $I0 is different from the behavior of casting $I0 to a PMC and iseqing it with $P0? | ||
| shockwave | Only through usage (and that means Parrot users creating languages) will these warts come out. | ||
| plobsing | shockwave: if/when we get a tracing JIT, the hot path will likely get optimized to what you want | ||
| bacek | shockwave, interesting "eq $N0, $I0, label" should work. | 22:52 | |
| "eq $P0, $I0, label" should work too | |||
| shockwave | I'll add the code for conversion. | 22:53 | |
| Thanks for the feedback. | |||
| bacek | But "iseq" doesn't have "casting" versions. | 22:54 | |
| shockwave, can you create RFC ticket? | |||
| cotto | bacek, looking now | 22:55 | |
| shockwave | bacek, What should it mention? | ||
| bacek | shockwave, "op iseq should able to compare args of different type" | 22:56 | |
| nopaste | "cotto" at 192.168.1.3 pasted "bacek, how about this?" (20 lines) at nopaste.snit.ch/20562 | ||
| bacek | for consistency with "op eq" | ||
| cotto, looks ok. | 22:57 | ||
| cotto | shipping it... ;) | ||
| shockwave | bacek, kk | ||
| bacek | cotto, next thing "corevm" :) | ||
| cotto | what about it? | 22:58 | |
|
22:58
Psyche^ joined
|
|||
| bacek | opsc isn't part of corevm | 22:58 | |
| just because it depends on nqp/pct/etc | 22:59 | ||
| Check dynoplibs | |||
| cotto | How does that problem manifest itself? | ||
| bacek | touch compilers/opsc/ops2c.nqp && make corevm | 23:00 | |
| Yes, $DYNOPS in corevm | |||
| tcurtis | Someone more knowledgable than me: Is that case I mentioned where $P0 as int could be iseq to $I0 even if $P0 is not iseq with possible in the general case? It seems like it should be if $P0 is the first argument(for example, comparing a ResizablePMCArray of length 5 to the int 5), but is the same problem possible when $I0 is the first argument to iseq, since the Integer PMC just looks at the int value of the PMC anyway(I'm assuming iseq calls the is_equal | 23:01 | |
| vtable)? | |||
| bacek | And pull opsc for dependencies. | ||
| tcurtis, in general - not. But if PMC is just boxes value - it's possible. | 23:02 | ||
| cotto | Won't that potentially break the dynops build? | ||
| bacek | cotto, we have to move dynops into "all" target | 23:03 | |
| cotto | ok. That approach makes sense. | ||
| dynops aren't really a corevm thing | |||
| bacek | and move them out of coretest :) | ||
| agreed | |||
| cotto | done | 23:05 | |
| bacek | cotto, rebuilding now | 23:06 | |
| corevm is correct | 23:07 | ||
| dalek | rrot: r46688 | cotto++ | branches/ops_pct/lib/Parrot/Harness/DefaultTests.pm: [opsc] move opsc tests from runcore to library |
23:08 | |
| rrot: r46689 | cotto++ | branches/ops_pct (2 files): [dynops] move dynops out of corevm and tests out of coretest |
|||
| bacek | coretest passed | 23:09 | |
| cotto++ | |||
| cotto | w00 | ||
| bacek | Did you take a look at opsrenumber? | 23:10 | |
| cotto | not yet | ||
| bacek | How hard is to reimplement it in opsc? | ||
| cotto | iirc, it'll be nearly trivial | ||
| but I could be thinking of something else | |||
| shockwave | Arg! trac.parrot.org LOVES eating new lines of post. | 23:11 | |
| s/post/tickets | |||
| cotto | im ur trac. imma omnomnomnomnom ur tikts | 23:12 | |
| bacek | cotto, looks easy enough. It will be just slow because of parsing ops... | ||
| shockwave | cotto, what sucks about that trac issue is that someone else looks at the ticket and goes, "Wow, that dude sucks. Can't he format his ticket correctly". | 23:14 | |
| bacek | shockwave, formatting fixed :) | ||
| cotto | nah. we feel quite happy blaming trac | ||
| bacek personally hate trac's text handling... | 23:15 | ||
| shockwave | bacek, thanks. I see that it supports some sort of [code] ... [/code] tags. I'll be using that in the future. | ||
| plobsing is not a fan of trac's handling of replying to text that includes {{{ code }}} | 23:20 | ||
| bacek | cotto, interesting. "expr" in ops used only as "expr NEXT()" | ||
| cotto, same with "restart" | 23:21 | ||
| cotto | I'm not terribly surprised. | ||
| It's worth keeping if there's a use case for the other versions. I don't know either way if there is. | 23:24 | ||
| dalek | TT #1641 created by shockwave++: iseq does not support the same type of operands as the math operators | ||
| TT #1641: trac.parrot.org/parrot/ticket/1641 | |||
| cotto | s/use case/potential use case/ | 23:25 | |
| bacek | rakudo has single usage of "expr NEXT()" | ||
| no "restart" | |||
| nopaste | "bacek" at 192.168.1.3 pasted "cotto, I want to commit it :)" (28 lines) at nopaste.snit.ch/20563 | 23:27 | |
| bacek | Then we can refactor Actions.op_macro to handle only "goto" | ||
| cotto | wfm | ||
| bacek | After merge I think. | ||
| cotto | What'd be really nice would be a way to rebuild ops2c without rebuilding everything else | 23:29 | |
| bacek | "everything else"? | ||
|
23:29
JimmyZ joined
|
|||
| cotto | full ops bootstrap | 23:30 | |
| i.e. run ops2c --core, check the output, rebuild ops2c without rebuilding parrot | 23:31 | ||
| nopaste | "bacek" at 192.168.1.3 pasted "cotto, something like this?" (14 lines) at nopaste.snit.ch/20564 | ||
| bacek | ah, no | ||
| You have to rebuild everything after boostrap :) | |||
| bootstrap | |||
| purl | bootstrap is jsut for the .elc files or a statistical method that replaces theoretical assumptuions with simulation | ||
| bacek | purl, forget bootstrap | 23:32 | |
| purl | bacek: I forgot bootstrap | ||
| cotto | yeah. That's what I want to gt around. | ||
| get | |||
| bacek | cotto, use ccache. Rebuilding is quite fast :) | 23:33 | |
| cotto | bacek++ | 23:34 | |
| I was actually meaning to do that. | |||
| Isn't there some symlink trickery you can do to avoid needing to pass special options to Configure.pl? | 23:36 | ||
| bacek | I just have ./Configure.pl --cc="ccache cc" in my bash history | 23:37 | |
| cotto | I'm too lazy for that. | 23:38 | |
| ccache.samba.org/ccache-man.html | 23:39 | ||
| bacek | laziness ftw :) | 23:40 | |
| dalek | rrot: r46690 | cotto++ | branches/ops_pct/compilers/opsc/src/Ops/Emitter.pm: [opsc] break apart '$Id$' so svn doesn't change it prematurely |
23:41 | |