Parrot 3.0.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures
Set by moderator on 10 February 2011.
dalek p: 4dd9166 | jnthn++ | src/ (2 files):
Add a slot in the s-table for Parrot v-table mapped routines; we'll stash 'em by v-table index so the lookup should be fast. Also, marking.
00:02
00:07 protorom joined
Coke anyone know why I'm getting this: set_string_native() not implemented in class 'TclString' 00:23
sorear you must have code like $Pn = $Sn 00:25
where $Pn is a TclString instance
Coke Yes, but TclString is a child of string - it should totally have that vtable.
$P284 = get_root_global ["parrot"], "P6metaclass" 00:26
$P284."new_class"("TclString", "String" :named("parent"))
(not a straight class, but still.)
sorear if you're using P6metaclass correctly, which I can't confirm offhand 00:28
Coke I'm using nqp-rx. 00:30
sorear I should have guessed from the $P284 :)
Coke and if I try to provide a manually override for set_string_native, I get an infinite loop. whee. 00:31
trac.parrot.org/parrot/ticket/1886 00:33
ah, now I remember why partcl is dead. ;) 00:34
dalek p: 8fbefcc | jnthn++ | src/ops/nqp.ops:
Add an op for publishing a set of Parrot v-table overrides. Resolves names to indexes once here, to avoid doing it every invocation.
p: 3e4373a | jnthn++ | src/metamodel/how/NQPClassHOW.pm:
Implement support for adding Parrot v-table overrides to NQPClassHOW. Will need to somehow be marked Parrot-specific in the future.
p: 4f1fcec | jnthn++ | src/pmc/rakudoobject.pmc:
Make get_[integer|number|string] overridable. More to come soon; it's just yak shaving now. Along with the patches that led up to this, it fixes the 52-vtable.t regression, mostly unblocks moving Match to 6model and a bunch of other good stuff.
p: d0df731 | jnthn++ | build/PARROT_REVISION:
Bump to a newer Parrot that has the write barrier bits.
00:43 cognominal left, cognominal joined
dukeleto i am seeing this in cardinal: error:imcc:The opcode 'concat_s_s' (concat<2>) was not found. Check the type and number of the arguments 00:58
jnthn dukeleto: Needs replacing with the 3-arg form of the op.
00:58 whiteknight joined
Hackbinary dukeleto, you're using the parrot/cardinal project, yes? 00:59
dukeleto Hackbinary: let's go into #parrot for this 01:00
oh
dukeleto facepalms
Hackbinary #cardinal?
dukeleto Hackbinary: yes, using parrot/cardinal
i had a really old version 01:01
forgot to "git pull --rebase"
dukeleto tries to send a smoke report
Hackbinary I had that same problem when I started messing around with it a couple of weeks ago, and then I found out that I was supposed to use the parrot/cardinal, not cardinal/cardinal 01:02
01:02 nopaste joined, TonyC joined
dukeleto Hackbinary: yes. it moved recently 01:02
Tene dukeleto: I think someone mentioned they had a patch for the smolder stuff in cardinal... 01:05
it's still broken though, it seems
Hackbinary tene / dukeleto, there is a diff file for the Rakefile on the parrot-dev 01:06
Tene ah, yeah, lateu 01:07
dukeleto yeah, i saw it
Tene trying it... 01:08
submitted
Hackbinary does anybody have admin access to cardinal/cardinal? the readme and cardinal.github.com should be updated so people goto github.com/parrot/cardinal
dukeleto now i get: too few positional arguments: 1 passed, 2 (or more) expected
current instr.: 'parrot;cardinal;Grammar;peek_brackets' pc 0 (src/parser/quote_expression.pir:1)
Tene has admin access, methinks 01:09
Tene Hackbinary: if I give you access, will you update it for me?
Hackbinary tene, sure
i've updated both the rubyforge projects already :D
Tene iirc, the rubyforge projects were actually for an earlier project by the same name 01:10
dalek rdinal: e770a4e | tene++ | Rakefile:
Fix smolder submissions. lateu++
01:12
Coke ugh. what was the first release that installed parrot-nqp ? 01:13
ugh. some tool isn't expanding ~ 01:14
ls
Tene Coke: your shell expands ~, not individual tools. ~ is only expanded when it's the first letter of a word. 01:15
ls should never be expanding ~
Coke Tene: Just ranting, thanks. 01:17
the ls was a "wrong window"
Tene Coke: Ahh. :)
Coke I'm in the middle of trying to bisect a bug that's impacted tcl for some time.
dalek rdinal: 4de5e81 | cardinal++ | README:
Add message where to find active development.
01:18
Coke (and am therefore grumpy.)
Tene Hackbinary: if you could update the cardinal/cardinal repo just in case, that would be great. 01:19
Hackbinary tene, the current codebase? 01:21
Tene Hackbinary: Yeah, pull parrot/cardinal into cardinal/cardinal
Hackbinary alright
01:29 kid51 joined
dalek rdinal: d7f3811 | hackbinary++ | README:
Updated active development message.
01:39
dukeleto Hackbinary++ 01:40
Coke ahahaha. 01:46
Hackbinary thanks =)
Coke my bisect says that the 2.9.0 tag is the thing that broke it.
sorear ...huh?
dukeleto Coke: interesting 01:47
Coke: the actual commit that broke it may have caused partcl to not build, so it is probably somewhere before 2.9.0
Coke seems like the commit-just-before 2.9.0 should not have been a skip 01:48
01:55 lucian joined
sorear Coke: is it possible you have code testing the version number somewhere? 01:55
Coke I appear to be relying on revision 1. 01:59
which in a post-git world means "whatever".
dalek rrot: fe1f244 | jkeenan++ | / (15 files):
Remove references to svn or svn.parrot.org. Replace with git references where appropriate.
02:08
whiteknight what's the command to compile a .nqp file to .pir? 02:21
parrot-nqp -o foo.pir foo.nqp?
sorear you might need a --target=pir in there 02:23
whiteknight awesome 02:29
02:58 protorom left 03:02 whiteknight left 03:29 adu joined 03:52 kid51 left 03:54 bacek_mobile joined
bacek_mobile jnthn, parrot_vtable requires support from pct. 03:56
Past::compiler i think 03:57
03:59 ryan is now known as rdesfo 05:13 bacek_mobile left
cotto ~~ 05:31
05:57 lateau_ joined 06:00 lateau_ left, adu left 06:07 rurban_ joined 06:10 rurban left, rurban_ is now known as rurban 06:19 benabik left
dukeleto ~~ 06:25
06:25 rdesfo left 07:39 lucian left
bacek ~~ 07:44
seem jnthn
seen jnthn 07:45
clunker3_ jnthn was last seen on #parrot 6 hours, 46 minutes and 38 seconds ago, saying: dukeleto: Needs replacing with the 3-arg form of the op.
aloha jnthn was last seen in #perl6 6 hours 43 mins ago saying "sub heredoc-dedenter($stuff) { loop { } } # I bet yours was longer than this... :P".
07:46 theory left
bacek msg jnthn Rakudo_binding_bind_one_param pokes into ll_sig->elements cache. It needs write_barrier, but I'm not sure about easiest way to patch it. 07:47
aloha OK. I'll deliver the message.
bacek msg jnthn src/binder/bind.c line 294
aloha OK. I'll deliver the message.
dukeleto bacek: greetings, fleshbucket 07:57
bacek dukeleto, aloha human 08:06
dukeleto bacek: are you still hacking on gen_gc2 ? 08:09
bacek: what needs doing on that branch?
bacek dukeleto, nothing.
I don't want to increase scope of initial implementation of GenGC
"Make it really fast" is 3rd step. And should be done separately. 08:10
E.g. optimizing ops2c, context accessors, etc
dukeleto bacek: ok, but you can just branch off of gen_gc2, right? 08:11
bacek dukeleto, yes. I just don't want to
dukeleto bacek: well, then
bacek: i think we will merge gen_gc2 pretty soon, like 5 seconds after 3.1 is tagged 08:12
bacek dukeleto, may be.
It's against our deprecation policy to merge it before after 3.3
dukeleto bacek: well, maybe our dep policy is wrong or needs an exception 08:14
bacek Dura lex sed lex
dukeleto bacek: the rakudo peeps want it sooner rather than later 08:15
bacek: who are we helping if we make our biggest customer wait 2 months to follow a rule that doesn't make sense?
bacek We pretend to be big, stable, mature project. 08:16
We can't just throw our own rules away in favour of single customer. 08:17
Or let's face reality: there is no other "customers" apart from Rakudo and Lua. 08:19
And policy should be "If we broke something - we will fix it for them".
E.g. "provide patches to migrate to bleeding edge parrot" 08:20
(Sorry Coke, partcl is permanently broken)
dukeleto bacek: why exactly does merging gen_gc2 require a dep cycle? 08:21
bacek we are changing "contract" with HLLs 08:22
same as "rename function"
dukeleto bacek: that is too abstract for me. Give me a concrete reason
bacek: also, i think this should come down to a vote at #ps, to be fair. 08:23
bacek dep cycle protect HLLs from changing source
moritz not true
bacek .. after changes on parrot side
moritz, elaborate
moritz HLLs need to change in response to parrot, independently of whether there was a deprecation note or not
dalek p: 4b8ac4f | bacek++ | src/ops/nqp.ops:
Add more write barriers.
moritz it's just that the dep note gives them more time to do so 08:24
but the change itself is inevitable
bacek moritz, erm. I think it is what dep policy for.
Avoid changes without notification
moritz but the system is broken anyway
bacek moritz, GC MS2 isn't broken 08:25
it works
it's about 30% faster than GC MS
moritz because many deprecations don't provide enough data to implement alternative strategies on the HLL side
bacek: sorry, I was talking about the deprecation system being broken, not parrot :-)
bacek ah
yes
08:25 zby_home left
moritz so as a HLL dev, I care that I get help when parrot breaks "me" 08:26
not that I know $n months in advance
(except when it requires quite big changes on the HLL side)
YMMV
bacek moritz, ok. Than it's exactly my "proposal" to change dep policy. 08:27
"We'll fix it for them"
short, simple, comprehensive
moritz we just need to be concious that this won't scale once we get significantly more users
bacek we'll not in next few years
moritz if you continue speeding up parrot like that, maybe we will :-) 08:30
bacek heh 08:33
no 08:34
LuaVM's calling conventions is orders of magnitude faster
single memcpy on callee side to be exact
moritz well, if we manage to get good cross-HLL interop, being not slow might be good enough for many users 08:35
bacek PCC is paying tax for :slurpy, :flat and autoboxing
moritz, who is working of cross-HLL interop?
moritz bacek: nobody 08:36
bacek moritz, exactly...
It reminds me about "17 times" from Failblog...
failblog.org/2011/02/04/epic-fail-p...een-times/ 08:37
dukeleto wow. 08:41
bacek dukeleto, yes... 08:42
dukeleto, no, sorry. "... exactly"
Tene bacek: for a long time, I was the only person working on HLL interop, and I kept getting the feeling nobody else cared about it.
bacek Tene, I know your feelings. 08:43
Tene I stopped after the N+1th time my HLL interop work was broken and nobody cared, and since then, nobody else has done any work on it that I've seen.
dukeleto Tene: i care about it, but I don't know what I can do right now to help 08:44
Tene dukeleto: It was a long time ago, and I need to get over it.
No worries :)
dukeleto Tene: do you think continuous integraion of HLLs on parrot master would help?
moritz one problem is that HLL interop is hard to test 08:45
Tene dukeleto: I think that parrot needs that *anyway*, so maybe.
moritz I mean, you need two HLLs and a test for both
dalek p: 2cef296 | moritz++ | build/Makefile.in:
cc_hasjit is gone, remove it from Makefile
moritz that's not something you just do in t/hll/interop.t or so
bacek moritz, indeed. 08:46
moritz especially if you want dynops and dynpmcs in both HLLs 08:47
and in rakudo too things break unless we test them
Tene does that even work yet? I remember there was a problem with dynop and dynpmc mapping when loading them in different orders?
bacek How much budget PaFo has? Can we pay (for example) to mj41 to finish his work on taptinder? So we can test hlls on to of parrot. And have some "hll interop" tests on top of it. 08:48
moritz Tene: I dimly recall that plobsing++ did something about that
bacek Tene, (order of loading) it should be fixed by now
Tene :)
dukeleto Tene: yes, plobsing merged a branch that fixed some of that stuff 08:51
bacek: we can also use github.com/franckcuny/jitterbug , which I hack on 08:52
Tene moritz: you certainly can have tests for the hll interop api, at least
dukeleto bacek: see an example of the web interface here: jitterbug.sgn.cornell.edu:8090/
bacek dukeleto, it doesn't really matter which CI tool we'll use. 08:53
TapTinder today is most useful for parrot.
dukeleto bacek: the more the better
bacek Just because it works right now. And can even test different branches 08:54
dukeleto bacek: jitterbug is good at emailing failure reports, TT has a nice irc bot
bacek: jitterbug tests every commit on every branch by default
bacek: and knows about perlbrew
bacek dukeleto, we don't need perlbrew. At all
dukeleto bacek: we need to test that parrot works under perl 5.8, 5.10 and 5.12 08:55
bacek: so i would say that it isn't a huge priority, but is a nice feature
bacek dukeleto, we are using perl for Configure and pmc2c (mostly) 08:56
And fading out perl 5 usage gracefully. 08:57
dukeleto compiles Parrot on NetBSD 09:00
bacek: if you think our build system or test suite is going to be rid of perl 5 any time soon, you are deluded :) 09:02
bacek dukeleto, me and cotto rewrote ops2c in nqp. I have old pmc_pct branch to rewrite pmc2c in nqp. 09:03
moritz removing p5 from the Configure system poses a certain bootstrapping problem
bacek Not a big deal to resurrect it. 09:04
dukeleto bacek: i am all for not using it unnecessarily, but i don't see the utility of "let's get rid of a perl dep"
moritz what are you going to replace it with?
bacek Moving from perl5 to (for example) autotools not a big deal.
moritz do autotools work on Windows?
dukeleto autotools would make cross-compiling parrot much trivial than it is now (i.e. possible) 09:05
bacek moritz, msys and cygwin - yes
dukeleto looks like master compiles on NetBSD 5.1. Sweet. 09:07
we have a few failing tests, but it mostly seems to work 09:08
moritz I've written a command line parser in (and for) nqp 09:09
so far it supports long and short options, with and without arg...
grouping of short options without arguments
bacek we have Getopt::Long in parrot
moritz and ending parsing after certain options (e.g after -e "program") 09:10
bacek sorry Getopt::Obj
moritz does a compiler need anything else?
bacek moritz, nothing else. 09:11
moritz bacek: I know, but in the medium/long run nqp wants non-parrot backends 09:12
instead of wrapping slightly different libs from each vm, we rather have our own
dukeleto t/op/spawnw.t is the only test failure on NetBSD
and i see why 09:15
dalek rrot: 077c449 | dukeleto++ | t/op/spawnw.t:
[t] Tweak spawnw.t tests to run on NetBSD

This test file assumed that perl is in our $PATH, but, by default, NetBSD has perl in /usr/pkg/bin/perl, so if /usr/pkg/bin was not in your
  $PATH, these tests would fail.
09:32
moritz hey, I have an idea for my command line parsing 09:46
I can add quantifiers to the specifications
so foo=s means that --foo expects on string argument 09:47
and bar=i+ would mean --bar expects at least on integer
and ? and + accordingly
erm
? and *
0,1 and 0...Inf
bacek moritz, I don't think that semantics of arguments belong to Getopt::* 09:51
Or, at least, it should be in 2 "packages". Getopt::Long and Getopt::Smart (modulus naming) 09:52
dukeleto smolder.parrot.org/app/projects/rep...tails/9384 <-- parrot master PASS on netbsd 5.1 amd64 09:54
09:54 protorom joined 09:55 AzureStone left, AzureStone joined
dalek rrot: a0d3767 | mikehh++ | examples/pir/befunge/setup.pir:
fix codetest failure - Bad format in copyright statement
10:22
rrot: e5bb489 | mikehh++ | t/op/spawnw.t:
fix perlcritic failure - Found platform-specific perl shebang line
TT #1106 closed by bacek++: Cannot presently dump Class pmcs
TT #1106: trac.parrot.org/parrot/ticket/1106
moritz bacek: I think it's getopt::*s job to check if multiple options + values of the same name are allowed or not 10:24
bacek moritz, it's your design decision :) 10:33
mikehh bah - got a failure with t/pmc/threads.t - Failed test: 9 in smoke #9392, reran and it PASSed - smoke #9293 10:50
I am fairly sure it is a timing problem, but we need to look at it 10:51
ha that last should have been smoke #9393 10:52
10:57 protorom left
mikehh got to go out for bit - bbl 11:04
dalek p: 20185cf | moritz++ | / (4 files):
incorporate command line parser from github.com/moritz/nqp-cl-parser

It is now built and tested along with nqp, but not yet used by HLL::Compiler
11:26
p: 47a56ec | moritz++ | src/HLL/CommandLine.pm:
POD for HL::CommandLine
11:40 whiteknight joined 11:44 lateau__ joined 11:50 lateau joined 11:57 lateau__ left 11:59 lateau__ joined
dalek p: 8f27940 | moritz++ | src/HLL/CommandLine.pm:
[commandline] get rid of an attribute
12:09
p: 69f3951 | moritz++ | src/cheats/nqp-builtins.pir:
ok() is now a bit closr to what TAP expects (descriptions instead of comments)
rrot-test: 28ba4ae | Whiteknight++ | setup.nqp:
Quick stub draft for setup.pir
12:14
p: 90092d0 | moritz++ | / (2 files):
[commandline] implement | option aliases
12:42
p: bc69ca5 | moritz++ | src/HLL/Compiler.pm:
"revision" is now always 1, use git_describe instead
12:52
jnthn ~
msg bacek not sure what needs the write barrier there - it's just setting an C-level int in an already-allocated, C-level array on line 294. The allocation of the nom_type_cache happened at the PMCs creation time; since it's just an int array it'll never reference another PMC. Is the problem that we somehow need to write barrier the object that ultimately references this array? 12:58
aloha OK. I'll deliver the message.
12:59 Maurice joined 13:29 contingencyplan left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9393) fulltest) at 3_0_0-934-ge5bb489 - Ubuntu 10.10 i386 (gcc-4.5 with --optimize) 13:40
bah messed that up - that was g++-4.5 with --optimize and now 13:58
All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9408) fulltest) at 3_0_0-934-ge5bb489 - Ubuntu 10.10 i386 (gcc-4.5 with --optimize)
14:07 rurban_ joined 14:10 rurban left, rurban_ is now known as rurban 14:17 kid51 joined
whiteknight in NQP if I do "class Foo is Exception { } my $ex := Foo.new(); pir::say(pir::typeof__SP($ex);" The result is "Exception", not "Foo" 14:28
so is NQP somehow preventing Exception from being inherited? 14:29
jnthn whiteknight: nqp-rx? 14:42
whiteknight yeah 14:43
jnthn Hmm. Oddness.
I doubt it treats Exception differently to any other PMC. 14:44
whiteknight for most of recent history, Exception was not subclassable in Parrot 14:47
I've only recently enabled that
mikehh rakudo (f4ec358) - builds on parrot (3_0_0-934-ge5bb489) - make test, make spectest_smolder[(#9415), roast (051af06)] PASS - Ubuntu 10.10 i386 (gcc-4.5 with --optimize) 14:48
27,634 ok, 0 failed, 610 todo, 1,841 skipped and 0 unexpectedly succeeded
mikehh bbl 14:51
15:01 fperrad joined
dalek rrot-test: 1e74f24 | Whiteknight++ | / (3 files):
re-do setup.nqp so it actually works.
15:04
rrot-test: 234cb83 | Whiteknight++ | / (2 files):
we didn't borrow Exception::Wrapper from Kakapo, so that isn't available to inherit from. We can subclass Exception directly now, although I haven't tested this kind of implementation
rrot-test: bb93b81 | Whiteknight++ | / (4 files):
several fixes so that the library builds and runs again. I've done a few ad hoc tests and it appears to be working mostly correctly
15:05
rrot-test: 55d995d | Whiteknight++ | / (3 files):
fix listeners. We're now getting some decent-looking TAP output
rrot-test: 4128034 | Whiteknight++ | / (14 files):
move source files for the xunit-based test classes into an xunit folder
15:14
rrot-test: ea24644 | Whiteknight++ | setup.nqp:
update setup.nqp to use the new file paths
kid51 msg mikehh Please see trac.parrot.org/parrot/ticket/2009#comment:3
aloha OK. I'll deliver the message.
kid51 msg dukeleto Please see trac.parrot.org/parrot/ticket/2009#comment:3 15:15
aloha OK. I'll deliver the message.
15:19 Kristaba joined 15:21 nwellnhof joined 15:37 lucian joined 15:51 jsut_ left, lateau left 16:00 kid51 left 16:16 zby_home joined 16:17 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner
Coke whiteknight: note that nqp's "is foo" doesn't use direct parrot inheritence, but goes through p6metaclass. 16:25
whiteknight ok
Coke which may relate to my long standing partcl bug.
(1886)
16:37 lucian left
arnsholt I suppose that's one upside of doing Prolog. No inheritance =) 16:54
dalek p: 14ff770 | moritz++ | src/HLL/Compiler.pm:
rewrite HLL::Compiler.evalfiles in nqp
17:11
17:15 nwellnhof left 17:25 lucian joined
dalek p: 0bbd0c9 | moritz++ | src/HLL/Compiler.pm:
remove debugging output that I accidentally left in
17:33
p: f481aab | moritz++ | src/HLL/Compiler.pm:
rewrite addstage in nqp. Not yet tested, because it is not actually called in nqp. Tough beans.
mikehh cotto: ping 17:36
Coke: ping 17:37
dalek p: 30d842b | jnthn++ | src/stage0/ (4 files):
Update bootstrap to include Parrot v-table support in NQPClassHOW.
17:38
p: 5c5e80a | jnthn++ | src/Regex/Cursor.pir:
Add v-table mapping for Bool method in Cursor, in order to rip out a special case hack.
p: 97c3955 | jnthn++ | Configure.pl:
Optimized build seems to work out fine on Win32, so do one.
mikehh whiteknight: ping 17:50
dalek p: 873f08a | moritz++ | src/HLL/Compiler.pm:
improve an error message
18:00
rrot: d4309a5 | mikehh++ | / (4 files):
applying patch from TT #2009 from kid51++

also removed $Id$ in MANIFEST/MANIFEST.SKIP and the generation of that as this is also a holdover from SVN
p: 25c26a4 | moritz++ | / (2 files):
use pure-nqp command line parser

I don't know why, but it it regresses on "-o filename". However
  --output=filename still works.
18:22
p: 1d68f30 | moritz++ | t/hll/05-commandline.t:
add a reduced case for the -o regression. The test does not exhibt the bug, so it is mostly useless :(
whiteknight mikehh pong 18:34
mikehh whiteknight: still getting the occaisional failure with t/pmc/threads.t either test 6 or 9, but if i rerun thge test with the failure it passes 18:35
whiteknight mikehh: comment out all the tests that fail for you 18:36
don't even TODO or skip them, just take them out for now
mikehh It is failing about 1% or less of the time and I usually run with TEST_JOBS=4, might be ok if I didn't use that, but I have run a humungous number of tests recently 18:38
what I want to find out is if anyone else is getting failures there 18:42
whiteknight I haven't seen any other reports of it, but the tests are so poorly written 18:50
I don't doubt that people could be seeing problems 18:52
and that's the problem with those two particular tests: they don't give us any certainty that anything is working properly
18:52 particle1 left
mikehh I think we definately need to redesign the test and make it "thread safe" as well 18:54
the timer test t/pmc/timer.t can also cause problems if run in parallel 18:55
if I ever start fulltest before make smoke completes these two tests will often fail 18:57
18:58 fperrad left
mikehh /me afk for a bit 19:08
mikehh afk for a bit 19:09
that's better
19:12 ambs joined
Coke mikehh: pong 19:34
dalek p: 105de53 | jnthn++ | src/stage0/ (4 files):
Another re-bootstrap needed to finally kill the get_bool hack.
19:38
p: f90cc86 | jnthn++ | t/nqp/52-vtable.t:
Tests for v-table inheritance.
p: f191cd2 | jnthn++ | src/metamodel/how/NQPClassHOW.pm:
Get v-table override inheritance/overriding to work.
p: 83b8fca | jnthn++ | src/metamodel/how/NQPClassHOW.pm:
Fix a thinko.
p: fbfe364 | jnthn++ | src/stage0/ (3 files):
Push Parrot v-table override inheritance updates into the bootstrap.
p: a3d9dff | jnthn++ | src/pmc/rakudoobject.pmc:
Rip out the get_bool hack - it's just a normal Parrot v-table override now. Should be faster. Also, looking over the way Parrot does it, I suspect that 6model may now be able to dispatch PIR-level v-table overrides somewhat faster than Parrot's Class/Object PMCs. :-)
19:44 Andy joined, zby_home left 19:46 contingencyplan joined
whiteknight I have a P6protoobject in an NQP program, and I would like to get a reference to the associated Parrot Class PMC. How do I do that? 19:49
$proto.HOW().get_parrotclass()?
dalek p: 5c5b494 | moritz++ | src/HLL/Compiler.pm:
rewrite parts of command_line in nqp
19:55
p: 9d325a2 | moritz++ | src/HLL/Compiler.pm:
restore proper usage messages
p: b350f28 | moritz++ | src/HLL/Compiler.pm:
start to port method command_line to nqp
jnthn whiteknight: Yes, that way.
whiteknight thanks 19:56
jnthn whiteknight: Be aware that it's a small lie perhaps. 19:59
whiteknight: The proto object is actually constructed by subclassing the actual class. 20:00
whiteknight oh
jnthn I think get_parrotclass would always give you the class that instances have.
Parrot's object model has no concept of an "empty instance".
So it was faked up that way.
whiteknight okay
What I'm trying to write now is a mechanism to load methods from one class into another class 20:01
jnthn ...role composition? :)
Well, not quite but. :)
whiteknight so in NQP I have MyExporter::export(Foo::Bar, Foo::Baz)
the problem is that depending on where I call that, Foo::Bar or Foo::Baz might be NameSpace or P6protoobject PMCs
and if NameSpace, there might not be a Class PMC created for it yet. NameSpace.get_class() is returning Null 20:02
so I'm becoming a little big flummoxed about how I can reliably get a list of methods from one and inject into the other
jnthn Yet another example of why classes and namespaces need a divorce. :/ 20:03
If you have a namespace then it doesn't have methods, though? Methods are something a class has.
whiteknight I'm working on a unit testing library. I have a "testcase" base class, and we subclass that for individual tests I'm trying to inject a series of assertion functions into the testcase class so I can inherit them in child classes 20:04
if I just do namespace importing, I can't see the functions in the subclass. If the methods aren't in the Class, they aren't visible in the MRO 20:05
jnthn Right, so they need to be add_method'd to the class.
whiteknight right 20:06
There may no be any way to do what I want to do.
jnthn Well, if you can obtain a list of methods to add and iterate over them, calling .add_method, it should be do-able.
20:11 Chandon joined 20:12 Chandon left
bacek ~~ 20:22
jnthn, problem with pmc which holds method_cache
dalek rrot-test: 1d2c13e | Whiteknight++ | setup.nqp:
install the xunit library
20:24
rrot-test: 6c5f73c | Whiteknight++ | mockobject/ (7 files):
initial upload of Kakapo's mock-object infrastructure. Is not working and is not included in the build
rrot-test: fcddc4c | Whiteknight++ | .gitignore:
+.gitignore
rrot-test: 2b6506f | Whiteknight++ | .gitignore:
add generated .pbc files to .gitignore
rrot-test: ecdb7d3 | Whiteknight++ | / (8 files):
break up the xunit sources into a common library which could conceivably be used for other libs. A few other cleanups
rrot-test: 4693175 | Whiteknight++ | .gitignore:
+temporaries in common/ to .gitignore
rrot-test: 7437cbf | Whiteknight++ | common/Listener/TAP.nqp:
+a missing file
rrot-test: 47a4ebe | Whiteknight++ | .gitignore:
add another folder to .gitignore
rrot-test: 47e8747 | Whiteknight++ | / (2 files):
redo assertions a little bit.
jnthn bacek: Wait, are we talking about Rakudo or nqp? 20:28
bacek jnthn, nqp
jnthn, may be it's GenGC bug 20:29
jnthn jan: Ah, OK, then I know what you're talking about :) 20:30
bacek jnthn, gotcha. Found it. 20:34
jnthn bacek: Found the problem? 20:36
bacek: OK. Let me know if you need any help
bacek: The cache is actually not meant to reference something that the meta-object doesn't also reference. 20:37
But we can't rely on that really.
bacek jnthn, I fixed write barrier I've put earlier.
- PARROT_GC_WRITE_BARRIER(interp, $1);
+ PARROT_GC_WRITE_BARRIER(interp, STABLE_PMC($1));
in publish_method_cache
lucian i was wondering, is there a lively lisp on parrot?
dalek p: 2255560 | bacek++ | src/ops/nqp.ops:
Fix write barrier in updating method_cache
20:38
jnthn bacek: Aha! :) 20:40
arnsholt lucian: I've been considering starting a CL on Parrot, but I figured that a single HLL on my own is probably enough =)
lucian arnsholt: i have a bunch of ideas i'd like to try out at some point for a lisp-like language, i was wondering whether there's something to piggyback on 20:42
i think there was a reasonable implementation of part of scheme, but it wasn't maintained 20:43
arnsholt: btw, what HLL are you working on? 20:44
sorear jnthn: a generational copying GC needs to know *all* the old objects that have pointers to new objects so it can update addresses
jnthn: "The cache doesn't reference antthing that the meta-object doesn't also reference" isn't good enough in the long run 20:45
jnthn sorear: True.
jnthn is still getting used to where the write barriers need to go :) 20:46
arnsholt lucian: I'm working on a Prolog (github.com/arnsholt/parrotlog) 20:51
And yeah, I think there's a dormant Scheme implementation, and I think I've seen a CL in the HLL list as well 20:52
lucian arnsholt: oh dear, you must be insane :)
arnsholt A bit. I found a way to implement backtracking with continuations (this doesn't help, does it? =) in a CL book, and figured I might as well try a Parrot HLL, since Parrot has continuations natively 20:53
I quite like Prolog, TBH. When you need non-deterministic search, it really can't be beat =)
lucian arnsholt: i think its syntax is a huge failure, otherwise it might be interesting 20:58
arnsholt What is it about the syntax you don't like?
lucian btw, backtracking with continuations isn't exactly crazy 20:59
i just find it extremely hard to read
arnsholt Yeah, continuations are a pretty sane way to do it (once you're insane enough to grok continuations =)
I find the syntax to be OK to read (although it turns out it's actually a bit less sane to parse) 21:00
I find Lisp to be less readable TBH. Very nice way to program, but I don't really like the syntax =)
lucian arnsholt: ah, i disagree with that :) 21:01
lisps aren't exactly great to read, but still ok
better than java, for me
arnsholt I can probably agree on the Java point
I just find Lisp code to be a bit monotonous when I have a full page of code
lucian arnsholt: yes, that is one of its failings. clojure is getting better with the nice literals, and their use in syntax (function arguments are vectors [a b c]) 21:02
arnsholt I'm a Perl man at heart, so I'm more "different things should look different" than "homoiconicity FTW"
lucian ah. i'm a python nut, i guess. i value readability above many things 21:03
arnsholt I have a friend who disagrees violently on that last point ^^
lucian yes, i have a one of those too :)
i may have said this before, i'd like to see something between python, lisp and yaml
arnsholt Hmm. Python-y Lisp should be pretty feasible, now that you mention it 21:05
moritz it's sad that even with a good toolchain, it's much hard work to build a compiler for a new programming language up to a point where you can actually use it
dalek p: f6b7f76 | moritz++ | t/p6regex/01-regex.t:
make p6regex tests runnable again
lucian arnsholt: actually, that has been researched to a point. look for Ginger 21:06
arnsholt: ging3r.org/learn.html
arnsholt moritz: Yeah, I guess. I think part of the problem is that compilers are kinda hard, as well =)
lucian moritz: part of the appeal of lisps is the democratisation of the compiler
arnsholt ging3r.org doesn't resolve for me, but I did find some blogposts 21:09
lucian arnsholt: there's a nice research paper, Ginger: Implementing a new Lisp family syntax. it's like he read my mind 21:11
arnsholt: hmm, i can't resolve ging3r.org anymore either. did i break it somehow? 21:12
cotto mikehh, pong (not around for long though) 21:33
21:35 kid51 joined
dalek rrot: adba550 | jkeenan++ | lib/Parrot/Manifest.pm:
'{id}' element no longer needed.
21:35
cotto aloha, clock? 21:37
aloha cotto: LAX: Sun, 13:37 PST / CHI: Sun, 15:37 CST / NYC: Sun, 16:37 EST / UTC: Sun, 21:37 UTC / LON: Sun, 21:37 GMT / BER: Sun, 22:37 CET / TOK: Mon, 06:37 JST / SYD: Mon, 08:37 EST
dalek rrot-test: 15c3d05 | Whiteknight++ | common/Assertions.nqp:
Assert::throws does not take a type argument. We arne't subclassing exceptons without kakapo
21:48
rrot-linear-algebra: 41759e3 | Whiteknight++ | t/ (77 files):
remove the use() directives, which were necessary previously. That logic will be handled in the new parrot-test
rrot-linear-algebra: fb000d2 | Whiteknight++ | t/harness:
don't rely on Kakapo FileSystem anymore.
rrot-linear-algebra: c3c7944 | Whiteknight++ | t/ (5 files):
start fixing tests
rrot-linear-algebra: f18597c | Whiteknight++ | t/ (4 files):
many fixes to the harness and the testlib. We are running all tests and passing several. Still many failures, probably related to Kakapo-related things that aren't there anymore
21:49
rrot-linear-algebra: d573e0b | Whiteknight++ | t/ (19 files):
fix several more tests, but many more failures still to go
rrot-linear-algebra: ec705ce | Whiteknight++ | t/testlib/methods/ (17 files):
more fixes
rrot-linear-algebra: c32b085 | Whiteknight++ | t/ (4 files):
more fixes, but now the test suite does not run to completion
rrot-linear-algebra: 5c136e3 | Whiteknight++ | t/pmc/complexmatrix2d.t:
fix complexmatrix2d tests so that it passes. We're running all test again, and now passing the vast majority of them
21:50 particle joined
bacek_at_work ~~ 21:50
21:55 sorear left 21:56 sorear joined, bluescreen joined, Kristaba left 22:07 rurban_ joined 22:10 rurban left, rurban_ is now known as rurban
dalek rrot: cccb01e | jkeenan++ | lib/Parrot/IO/File.pm:
Eliminate remaining svn-related functions.
22:16
22:19 ambs left 22:38 Andy left 22:41 protorom joined, eternaleye_ is now known as eternaleye 23:00 PacoLinux left 23:22 protorom left 23:38 Themeruta is now known as NotFound 23:43 Kapace joined
kid51 darwin/ppc: make fulltest PASS at cccb01e71961 (that's non-optimize, compile with gcc, link,ld with g++) 23:51