HAPPY BIRTHDAY #PARROT! | www.parrot.org/ | 1.4.0 | For 1.5: Remove Deprecated Features | planet.parrotcode.org/
Set by moderator on 11 August 2009.
chromatic Yes, you're fine. 00:02
I think I'll have it compiling again by tomorrow.
00:05 patspam joined 00:09 mokurai left
Coke yawns 00:15
Coke curses as his password to feather is stored in 1password, which means he don't have it on it. 00:17
"on him"
darbelo 1password? 00:18
purl 1password is a mac thing, right?
darbelo is enlightened.
treed Yeah.
It stores passwords in the OS X keychain.
Can also generate passwords and store identity/credit card information. 00:19
Coke it integrates with all the os x browsers, gives you what treed said, and has an iphone app so you can have them on the road.
treed With autofills for web browsers
All encrypted behind a master password.
Very spiffy.
Coke is reminded his 30 day trial will be expiring in a few weeks.
treed bought it a while back. 00:20
I wish there was a Windows version.
I know there are similar programs for Windows, but I'd like to sync across them all.
Coke I wonder if anyone would mind if we added .gitignore files to parrot 00:24
(not part of codetest, just a convenience by/for our git-svn friends.
dalek cnum-dynpmcs: r164 | darbelo++ | trunk/t/fma.t:
Add tests for the 'multiply_add' METHOD, extracted from fma.decTest.
00:28
Coke wonders how to say 'svn info' on a git repo (not git-svn) 00:29
00:31 petdance joined
darbelo Coke: git log? 00:45
eternaleye Coke: (backlogging) Didn't you read the part in the git docs where they specifically say it's a bad idea to push to a non-bare repo (ie one with a working tree)? 00:46
darbelo Coke: nevermind, I mis-read your question. 00:47
However, googling tosses blog.inquirylabs.com/2008/06/12/git...-svn-info/ which is kinda dated, but looks to be in the same ballpark as what you want. 00:49
00:51 GeJ joined 00:54 slavorgn joined 00:55 rblackwe joined 00:56 nperez joined
Infinoid msg whiteknight Naive benchmark results: examples/pir/mandel.pir runs 15% faster in auto_attrs branch. (compared average execution time of 2500 runs) 00:58
purl Message for whiteknight stored.
eternaleye Holy crap, that's awesome!
cotto Infinoid, where does that improvement come from? I thought that the branch only made Parrot smarter, not faster. 00:59
Infinoid I've no idea. 01:00
[08:28] <@whiteknight> Infinoid: you have any ability to do some quick benchmarks today?
[08:33] <@whiteknight> the auto_attrs branch streamlines the way PMCs are allocated, so I guess we want something that puts a lot of pressure on the GC
I'm not opposed to the idea that smarter can be faster, but I don't know any details at all. 01:01
cotto Maybe it's because of the elimination of malloc/free, but I wouldn't expect that much of a change.
Infinoid it's always possible that auto_attrs didn't get faster at all, and trunk just got slower, I suppose. 01:02
cotto For some reason I got you and NotFound confused. He'd be the best person to ask about such improvements.
Infinoid must be the 8-letter nick thing :) 01:03
01:07 nperez joined
eternaleye Infinoid++ # major coolness 01:09
Infinoid Don't ++ me, I didn't do anything. 01:12
If you want a less naive benchmark, examples/benchmarks/gc_alloc_reuse.pasm doesn't seem to show much effect
dukeleto 'ello 01:13
darbelo dukeleto == l3t0 ? 01:14
dukeleto darbelo: yes. l3t0 is at work, dukeleto at home 01:15
yes, I need some type of irc proxy solution.
darbelo Ah. That 'splains it.
ssh to home? 01:16
dukeleto darbelo: more like remote desktop. l3t0 is irssi living in a screen session on my server. dukeleto is colloquy on my laptop. but sometimes it is just fun confusing people :) 01:19
darbelo (confusing people)++ 01:20
dukeleto darbelo: well written blog post, keep 'em coming 01:21
darbelo I think the blogging has been the hardest part of GSoC so far :) 01:22
dukeleto darbelo: Believe me, I know :) I have been slackin' lately...
it is just so much easier to write a passing test then a blog post.
darbelo Heh. One of the things I did for decnum-dynpmcs is a tool that translates tests automatically to PIR. So, yeah, tests are easier :) 01:24
01:25 payload joined
dukeleto darbelo: nice 01:25
01:27 payload1 joined
darbelo OTOH, the decTest suite has some test that decNumber fails, or test that have different assumptions than we do. So I have to filter those out. 01:27
Infinoid msg whiteknight It's weird, seems to depend greatly on the workload. I see 13% speedup on examples/benchmarks/stress1.pasm, but almost no change on examples/benchmarks/gc_alloc_reuse.pasm or t/benchmark/benchmarks.t. 01:30
purl Message for whiteknight stored.
Infinoid goodnight all 01:31
all goodnight Infinoid 01:33
01:33 kid51 joined
dukeleto Infinoid: see you on the flip side 01:36
how do I link to files in the repo from trac again? it doesn't seem to be on the wiki markup page 01:37
dalek TT #911 created by dukeleto++: Tests for macro_local 01:38
dukeleto found it: trac.parrot.org/parrot/wiki/TracLinks 01:40
dalek cnum-dynpmcs: r165 | darbelo++ | trunk/t/squareroot.t:
Add tests for the 'sqrt' METHOD, extracted from squareroot.decTest.
01:48
02:01 tetragon joined 02:04 cognominal joined 02:33 satrac joined 02:35 janus joined, AndyA_ joined
allison is trying to figure out what the Happy Birthday is referring to. 02:50
first commit to parrot cvs repository 2001-08-29, still 18 days to go
02:51 ash_ joined
allison first parrot release 2001-09-10, a bit longer to go 02:51
03:09 TiMBuS joined 03:11 theory joined 03:20 donaldh joined
dalek rrot: r40496 | dukeleto++ | trunk (3 files):
[t] Add tests for fp_eq_ok in runtime/parrot/include/fp_equality.pasm
03:38
rrot: r40497 | dukeleto++ | trunk/t/include/fp_equality.t:
[t] Fix codingstd_tests related to fp_equality.t
03:45
cotto allison, it was just some silliness referring to several people with birthdays at or near today. 03:53
allison ah, well then happy birthday! 03:55
cotto It's interesting to know Parrot's birthday, though. Thanks for that. 03:57
That's a very short time between the first commit and the first release. Was there some preexisting code? 04:02
allison aye, the third commit is one massive dump of Simon Cozen's development directory
cotto Any idea when he originally started working on it? 04:05
04:06 s1n joined 04:13 petdance joined
allison cotto: I was just wondering that as I wrote it 04:21
treed Is there any way I can specifically remove a vtable from a subclass where the parent class has that vtable?
allison not sure, but we might be able to ask him
treed: what are you using from the parent if you don't inherit the vtable? 04:22
treed All the other vtables/methods.
I mean a vtable entry.
allison oh, you just want to remove one specific vtable function, not all of them
treed Yeah. 04:23
allison no, you can't remove it, you have to override it with new behavior
treed The parrot PMCs all assume that you can implicitly convert from, say string to integer.
This causes havoc with Ruby, because you need to have a .to_int method for that to work. 04:24
cotto You could just have it use Default's implementation, but throwing an exception would probably be a better idea.
treed I could throw the exception that Ruby actually would, except that subclassing Exception doesn't work :-/
(Well, throwing subclasses doesn't work.) 04:25
allison treed: if you duplicate the interface of exception, it'll work 04:36
(is this a PIR subclass of Exception?)
treed It is. 04:37
And subclasses of those subclasses.
Tene treed: are you sure? last I checked, cardinal didn't actually subclass exception. 04:39
it just had a completely separate class that had an exception as an attribute. 04:40
have you changed that yet?
seems to work fine for me. 04:41
nopaste "tene" at 12.161.194.230 pasted "exception subclass for treed++" (7 lines) at nopaste.snit.ch/17522
Tene wee? works fine. 04:42
s/wee/see/
treed Tene: It subclasses Exception since I made it do so. 04:44
I added the entire Ruby Exception tree.
Tene treed: look at the example I posted. it works fine. 04:45
treed I wonder if this is also due to the P6object crap like in TT#909
purl okay, treed.
Tene so what are you doing differently?
Sounds like. That's what I was thinking too.
might be about time to drop it.
treed is getting kinda fed up with P6object.
That's one of the options I list in the related issue on github.
Honestly, I'm not sure what all the P6stuff buys us. 04:46
I read the pir file, and it doesn't seem like it does much that couldn't be easily reimplemented.
Tene The only reason I used it was that it was the easiest way to get something together. 04:47
treed Ah. 04:48
I thought we were keeping it for some reason.
You suggested subclassing it.
Tene That's pmichaud's goal, at least.
P6object *should* be a good foundation for other languages to build on. 04:49
treed Is there a vtable for get_bool?
Tene So, if you care about helping P6object improve from that perspective, I recommend keeping it and pushing back to pmichaud whenever there are issues.
treed is fixing the Bool thing, having just discovered that Ruby has no such class.
Tene AFK sleeping.
treed nods.
Hm, there is a get_bool, but I'm not sure what I should be returning with it. 04:52
05:08 nathanmccauley joined 05:21 nathanmccauley_ joined
dukeleto should tests for macro_local go in compilers/pirc/t ? 05:32
bacek_at_work dukeleto: it's better to start creating compiler-independent test suite for pir. 05:42
we have at least 2 implementations now.
dukeleto bacek_at_work: ok, so what is our next step? 05:43
bacek_at_work dukeleto: may be create t/pir? 05:44
dukeleto bacek: which language should the tests be in ? PIR? i have noted that PIR tests are much harder to debug. we need better error diagnostics 05:45
cotto dukeleto, if you're referring to line numbers, very yes 05:47
bacek_at_work dukeleto: hmm... I slightly prefer tests in pir. But in perl are acceptable also.
dukeleto cotto: also, we need got BLAH expected FOO
cotto pir tests are preferable, but we're not anywhere near the point in the migration away from perl where new perl-based tests should be discouraged. 05:48
dukeleto bacek: I am fine with that. I may work on making test_more.pir more friendly as a precursor or in parallel
so it seems that pirc is failing tests in trunk 05:49
the tests in compilers/pirc/t, that is 05:51
NotFound Tene: that exeception example doesn't work as intended. It throws a "Not a throwable object" exception. 06:00
treed Ha-HA.
treed should have actually tried it.
06:01 chromatic joined 06:02 uniejo joined 06:15 theory joined
dukeleto it seems a lot harder to write TODO tests which fail parsing in PIR 06:23
chromatic pir_error_output_like
dukeleto chromatic: is that function available in tests written in PIR? 06:24
chromatic Oh. No, sorry.
dukeleto chromatic: that is good to know about, though 06:25
it seems that we need improvements to our PIR testing framework to make converting tests and writing new tests in PIR a reality 06:26
.macro_local is definitely broken, but I can't seem to write a todo test in PIR 06:27
easy to get around (just write the test in perl), but indicative of a larger issue 06:28
chromatic We need stronger Eval. 06:29
dalek rrot: r40498 | dukeleto++ | trunk (3 files):
[t] Add some basic tests for PIR macros
06:53
06:55 masak joined
dalek rrot: r40499 | dukeleto++ | trunk/t/pir/macro.t:
[t] Fix codingstd_tests related to t/pir/macro.t
06:56
chromatic Hm, was Parrot_set_run_core ever in the public API?
06:59 eternaleye joined
dalek rrot: r40500 | NotFound++ | branches/auto_attrs/lib/Parrot/Pmc2c/PMCEmitter.pm:
explain the heuristic used to set the value of attr_size
06:59
07:09 szabgab joined
chromatic Hm, I'm through to the IMCC build now. That's progress. 07:12
szabgab hi chromatic , have you seen the patch I sent you for the sdl website ?
dalek rrot: r40501 | NotFound++ | failed to fetch changeset:
merge from trunk r40500
07:17
chromatic szabgab, I can't commit there myself, but I sent it to webmaster@perl.org to commit. 07:18
szabgab oh
chromatic Now Parrot builds on my branch, but it segfaults. 07:19
Progress.
purl progress is progress
szabgab so we are again dependent on a few people who might as well be on vacation for the next 2 weeks
chromatic Unfortunately.
szabgab do you know anyone except of webmaster@perl.org who has commit bit on that web site ? 07:20
07:21 donaldh joined
chromatic No, I don't. 07:21
GeJ chromatic: what is your branch about? 07:27
chromatic Refactoring runcore management to use structs and function pointers instead of magic numbers. 07:32
cotto sounds like it's getting close 07:33
chromatic Segfault debugging time. 07:35
dalek rdinal: 7354de4 | treed++ | (4 files):
Remove Bool and add TrueClass and FalseClass.
07:40
rdinal: 5aa1105 | treed++ | src/ (13 files):
Have everything use the new true/false.
rdinal: 035af4a | treed++ | (3 files):
Fix Array's - and & operators.
rdinal: 264f804 | treed++ | t/hash/exists.t:
Correct a test to use true/false instead of 1/0.
rdinal: 677cc5d | treed++ | t/time.t:
Make a test not fail if it happens to be within the hour after midnight.
treed Um, wow.
forgot it would spam the channel
treed should push more often.
chromatic I should learn how to declare function pointers in C. 07:43
NotFound chromatic: lots of typedef usually helps 07:44
chromatic I had one too many *. 07:49
nopaste "chromatic" at 72.87.39.97 pasted "Pluggable Runcores Work in Progress" (2294 lines) at nopaste.snit.ch/17523
chromatic Plenty of fun segfaults to debug.
10 files changed, 1138 insertions(+), 585 deletions(-) 07:50
cotto That's quite the patch.
chromatic Bigger than I thought it would be.
24 Git commits so far.
cotto I feel so low-tech using straight svn. 07:51
GeJ Pardon my ignorance, but how come (almost) none of the 64bits platforms support JIT?
chromatic It's an experiment.
GeJ, it's difficult to write a 64-bit aware JIT. 07:52
cotto chromatic, do you understand Parrot's guts well enough to say why pc[1] tells me the number of the first register arg to an op? 07:58
08:00 HG` joined
chromatic The register number? 08:02
My guess is that the first argument to the op is a constant.
08:11 payload joined
NotFound I think register numbers are just the way to store the register arguments in the bytecode sequence. 08:16
cotto I foresee some time spent diving into that part of the code. Happily src/runcore/trace.c does much of the work for me. 08:18
chromatic Aha, it now builds! 08:22
Fully!
Even PGE!
08:23 einstein joined
eternaleye chromatic++ 08:23
chromatic There are some test failures, but it's much closer.
22 test failures. 08:24
cotto v. shiny
nopaste "chromatic" at 72.87.39.97 pasted "Pluggable Runcores Work in Progress (take 2)" (2422 lines) at nopaste.snit.ch/17524 08:25
chromatic 13 files changed, 1152 insertions(+), 605 deletions(-)
cotto coverage? 08:47
purl coverage is good here, but sucks in lots of places.
cotto test coverage?
purl it has been said that test coverage is tapir2.ro.vutbr.cz/cover/
chromatic I ran a couple of cores. 08:53
Mostly it's cleaning up a few odds and ends I missed.
chromatic sleeps
09:52 gaz joined 10:07 muixirt joined
muixirt good morning 10:07
purl And good moroning to you, muixirt.
10:07 riffraff joined 10:09 riffraff joined 10:40 gaz joined 11:07 szabgab joined 11:08 kj joined 11:18 HG` joined 11:21 donaldh joined 11:25 MoC joined
dalek rrot: r40502 | NotFound++ | branches/auto_attrs/src/pmc (2 files):
use auto_attrs in CallSignature and some cleaning in Capture
11:46
einstein I finally succeeded in really killing the unionval struct from the pmc struct 11:50
I will have to do some more cleansing, but I hope I can make patch on saterday, but i will send a messsage on the mailing list with more information 11:51
12:13 whiteknight joined
dalek rrot: r40503 | NotFound++ | branches/auto_attrs/src/pmc (2 files):
set auto_attrs on Socket and Sockaddr PMCs
12:20
12:32 petdance joined 12:35 ruoso joined
Coke dukeleto: deep in review, but you can run irssi on feather if that helps. 12:57
(pirc vs. imcc) there should be one set of tests, and whether we're testing imcc or pirc should be controlled by a Configure.pl switch that lets us pick our compiler. 13:11
NotFound I'd like better runtime switched, and configure setting the default. 13:12
Coke NotFound: there's no need for runtime switching since we're only ending up with one. 13:14
mikehh All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40503 - Ubuntu 9.04 i386 13:15
NotFound Coke: I think is highly probable that new altenatives and proposals keeps coming. 13:17
13:18 rdice joined
particle einstein++ 13:20
NotFound: i agree. unfortunately, making something pluggable doesn't usually succeed until the third plugin is complete 13:21
anyone else want to write a pir compiler?
NotFound Isn't someone writing a PCT based one? 13:23
moritz looks at bacek
kj NotFound: I suspect/hope that particle was joking :-) 13:24
bacek_at_work who called me?
particle it's a sad truth, but a half joke 13:25
bacek_at_work Ah. Yeah. It's not quite joke.
kj i thought it was funny
mikehh rakudo (a5dfe95) builds on parrot r40503 - make test/make spectest (up to 27968) PASS - Ubuntu 9.04 i386
bacek_at_work I resurrected old kj's PCT_PIR :)
particle can you use nci from nqp yet? 13:26
bacek_at_work particle: I didn't tried. 13:27
13:29 quek joined
Coke (anyone else want to write a pir compiler) ... Are you (*&@#$ serious? 13:34
bacek_at_work Coke: I am. 13:35
Coke a PCT based one is not beyond the realm of potential usability.
a third C based one would be, IMO, insane, if we have two actively developed ones in that niche already in progress. 13:36
and we only have those 2 because the second one isn't finished yet.
mikehh now I gotta switch to my amd64 - I haven't got my VM working properly yet (wireless network problems)
13:44 mikehh joined
particle coke: agreed, a third c-based one is madness 13:52
bacek_at_work no one want to do it in C.
NQP is much-much better. 13:53
NotFound Let's write it in c++, then ;)
particle OK! you start.
bacek_at_work NotFound: Easy.
2 man-years :)
NotFound I'm tempted, but lack the time.
particle so, who wants to write the wrapper for libparrot so we can call parrot funcs from nqp using nci? 13:54
embed parrot in parrot, anyone?
moritz with more inferior runloops than ever before?
particle but of course! 13:58
14:28 nathanmccauley joined 14:32 mberends joined 14:46 Psyche^ joined 15:03 gron joined
gron hello, have a short question about the parrot internals: do i read interpreter.c correct? parrot does have a switch-based, a threaded interpreter, and some kind of JIT? 15:04
15:05 nathanmccauley_ joined, nperez left 15:06 nathanmccauley__ joined
muixirt gron, yes i think so 15:08
15:09 Psyche^ joined 15:11 Fr0stify joined
gron ok, thanks, the jit is i guess only a simple baseline compiler, or are there already some fancy optimizations included? 15:20
15:20 donaldh joined
muixirt gron, erm ... I'm not a parrot hacker 15:20
actually the jit is quite good 15:21
but only for i386
moritz gron: I don't think it's really fancy yet. The biggest problem are the many PIR <-> C switche which can't be JITted
muixirt moritz, you mean these PMCs? 15:22
moritz yes
muixirt moritz, I think the large number of opcodes is a burden for jit too 15:24
15:24 quek left, theory joined
PerlJam whispers "L1" 15:25
muixirt L1?
purl i guess L1 is a hypothetical language that would be used to implement PMCs and PIR-visible ops so that they could all be easily jitted. or irclog.perlgeek.de/parrot/2009-04-21#i_1083550 or rt.perl.org/rt3/Ticket/Display.html...txn-471982 or magical unicorns and flying puppies.
moritz whispers "Lorito"
lorito?
purl lorito is "little parrot" in spanish or examples/embed/lorito.c
PerlJam ah, better name
muixirt I assume it's in the next parrot release ... 15:27
moritz don't assume. It exists only as an idea so far
muixirt :-)
does a hll have any hooks for meddling with the execution of opcodes? 15:28
15:32 gaz joined
muixirt heretic question: for what are these Ixx, Nxx ans Sxx parrot registers good for? *Dynamic* languages targeting parrot don't seem to use them often 15:32
15:32 gaz joined
moritz muixirt: I guess Perl 6 will use them when it implements native types 15:33
my int @a[10] -> FixedIntegerArray 15:34
muixirt it doesn't seem to be high on the priority list 15:35
moritz no
but they are still needed for boostrapping the type system, no?
I mean if you want to encapsulate an integer into a PMC, you still have to have that integer 15:36
muixirt it's only useful for pir programmers 15:37
moritz no, high level programmers still need a bootstrapped type system 15:38
muixirt for example? 15:39
NotFound Even if you never use assembler in C programs you benefit from supported functions written in assembler. Same in parrot with HLL and pir routines. 15:40
moritz muixirt: as I said, even if you wrap an integer in a PMC, you still need to support an integer at some level
muixirt well rakudo is partly written in pir, so it uses Ixx registers 15:43
moritz even if not, it would still use integer operations at some level
muixirt but in generated code it isn't uses, and therefor doesn_t jit very well (or segfaults as it is now the case) 15:44
particle muixirt: native types are much smaller and faster than pmcs 15:45
of course, you need to deal with platform issues like MAXINT
but when speed is required, they're available for use 15:46
15:49 HG` joined
muixirt particle, yeah I noticed that (muixirt.wordpress.com/2009/07/01/core-business/) 15:50
particle muixirt: you don't mention what PMC is currently called, polymorphic container 15:52
and i don't understand, you can use I and P registers in the same runcore
15:52 nathanmccauley joined
muixirt particle, am I supposed to? ;-) 15:52
particle rakudo doesn't yet implement native types like 'my int $x' 15:53
muixirt particle, I don't dispute that (you can use I and P registers in the same runcore)
particle it's not that it ever will
ah, you're right, i misread.
i misread "it has two *faces*" 15:54
muixirt in the blog entry I mistyped that, it should be: my Int $var
moritz muixirt: and that makes quite a difference 15:55
muixirt: because an Int in Rakudo is far from being the same as an $I register in parrot
muixirt moritz, not in that case of a while loop
moritz you can mix in roles, it can be undef etc.
muixirt ok, i understand: no optimization yet
moritz muixirt: yes. But sadly not all of our programs are that simple :/
particle no, not optimization 15:56
my Int $x; # perl 6 integer semantics
my int $x; # native platform integer semantics 15:57
muixirt could parrot optimize that? (instead of rakudo)
in principle
moritz particle: I think muixirt's point is that if rakudo detected that native platform would work in that case, it could use int registers automagically
but Perl 6 is *very* dynamic, blocking all sorts of static analysis 15:58
particle ok, it's possible, but it would be difficult
and it would be rakudo's job, not parrot's, to optimize
muixirt moritz, javascript is also very dynamic, but v8 and tm are using integers if they can with quite amazing speed 15:59
particle, rakudos job ends with the generation of PAST 16:00
particle not true
NotFound There was some talk about optimizations as such at PCT level, but nothing is yet done.
particle the rakudo compiler is free to add optimization steps at any point during compilation
muixirt particle, i know but it doesn't do that, and maybe it needn't 16:01
NotFound If some optimizations can be done by the PCT tools, all languages may automatically benefit.
particle rakudo does zero optimisation right now
moritz muixirt: javascript is by far less dynamic than Perl 6 is. Anyway, tracemonkey uses clever JIT compilation, which is thwarted in parrot by the many PIR<->C borders
muixirt NotFound, yes that would be the right thing
moritz for example in javascript you can't bind variables, making them appear in totally unexpected scopes 16:02
muixirt moritz, javascript doesn't want to support very proamming paradigm but it is simply dynamic, it can't be more dynamic 16:03
moritz, in javascript a variable can be everything and that can change throughout the code 16:04
16:04 payload joined
PerlJam somewhere there's a lisp guy lurking and laughing at all this talk of how dynamic javascript and perl 6 are 16:06
16:07 kj joined
muixirt apropos javascript, why isn't ecmascript for parrot developed anymore? 16:11
moritz muixirt: because nobody does it
muixirt moritz, well why? Technical reasons? 16:12
PerlJam muixirt: time, energy, etc. 16:13
I still believe that aside from perl 6, the most important languages to have on parrot would be javascript and php 16:14
muixirt PerlJam, I doubt that a parrot implementation of php would fit into the php ecosystem 16:16
dalek kudo: a50e07d | pmichaud++ | :
Merge branch 'ins2'
PerlJam muixirt: I agree. The php community seems very clue resistant.
muixirt PerlJam, :-) but that is not what i meant 16:17
16:17 gaz joined
dalek tracwiki: v96 | Klaus++ | Languages 16:23
tracwiki: moritz says so
tracwiki: trac.parrot.org/parrot/wiki/Langua...ction=diff
muixirt it seems most languages which were moved away out of the languages directory dropped out of warp
PerlJam muixirt: I think you have that backwards. They were already fallow when they were kicked out of the languages dir. 16:24
some of the languages were worked on in fits and starts (js is good example) 16:25
muixirt PerlJam, ?
purl PerlJam, is that a 5.005-ism?
muixirt PerlJam, so the implementors ran against some obstacle. Which? 16:30
kj muixirt: I worked on ecmascript for a bit 16:31
PerlJam muixirt: as I said before ... (lack of) time and energy
kj i ran into the problem of not knowing how it should be done
moritz 95% of all obstacles are "not enough free time", or losing interest
kj which then results in decreasing motivation
which then results in re-evaluating your priorities 16:32
PerlJam which then results in your wife/gf/kids/schoolwork/life/whatever getting more of your time :)
16:34 kj_ joined, theory joined 16:39 iblechbot joined 16:40 Psyche^ joined 16:42 darbelo joined
dalek kudo: 006ae4d | moritz++ | README:
notes on installed parrots in README
17:05
kudo: a5aea15 | moritz++ | README:
mention perl6-projects.org in README
17:10 HG` joined
dalek cnum-dynpmcs: r166 | darbelo++ | trunk/ (2 files):
Add tests for the 'exp' METHOD, extracted from exp.decTest.
17:14
17:16 riffraff joined 17:19 pyrimidine joined, Psyche^ joined 17:20 mikehh joined, chromatic joined 17:21 bacek joined 17:22 MoC joined 17:32 Coke joined, nopaste joined
Coke if I want to override a vtable of a dynpmc from PIR, what do I need to do? 17:35
nevermind. 17:37
bah. How are folks outside of core supposed to do "_Parrot_oo_find_vtable_override" ? 17:41
17:45 Psyche^ joined
jonathan Coke: I think I marked that one PARROT_EXPORT recently, or one very similar to it. 17:46
Coke: I hit the same problem in a Rakudo dynpmc. 17:47
Coke jonathan: how recently?
Coke rebases.
jonathan Coke: And yes, I know this is a sucky situation if you're trying to stick to Parrot releases. :-(
Coke: Few days back.
Coke nope. 17:48
perhaps this is a git misunderatnd. 17:49
"ing"
jonathan Coke: It may not have been that one, but one of a similar name...checking... 17:50
Coke I have a git-svn repo. I do a 'git svn rebase' there. I have a downstream clone of that; I go there and do "git pull -rebase" - does that copy now have all the updates I downloaded?
jonathan: I already gave up any pretense of sticking to parrot releases.
It's just not ready yet.
moritz Coke: (git) it should, yes
jonathan Coke: I normally do git pull --rebase with straight git, not sure about svn.
erm, git-svn
Coke jonathan: yah, that particular function I want is not marked for export. will test, if it works for my sample, I'll commit. 17:52
jonathan Coke: Ah, it was Parrot_oo_find_vtable_override_for_class that I marked.
jonathan -> shops
Coke ... crap. I can't do make install-dev on my OSX box anymore. :| 17:58
what a (P*@#&$ pita.
"I will make a change to partcl to take advantage of a vtable instead of defining my own method". 17:59
Coke wanders off.
dalek TT #773 reopened by coke++: Can't override vtables of a PMC from PIR 18:02
treed Null PMC access in find_method() 18:12
current instr.: 'cardinal;NilClass;main' pc 9168 (cardinal.pir:101)
That's... interesting.
(Should be 'cardinal;compiler;main' OSLT)
18:13 Psyche^ joined
treed And apparently whatever compreg is returning is also nil. 18:13
einstein how can i make in pod C<obj->field>, how can i escape the -> 18:27
?
chromatic C<< ... >> 18:28
purl it has been said that C<< ... >> is working POD
einstein ok thanks
mikehh All tests PASS (pre/post-config, smolder, nqp_test, fulltest) at r40503 - Ubuntu 9.04 amd64 18:33
it also PASSes on Ubuntu 9.04 i386
18:34 nathanmccauley_ joined
mikehh but rakudo doesn't build on it anymore 18:34
iikm an installed parrot now 18:35
Coke iikm?
mikehh it will
Coke iikm == it will ?
mikehh actually it will only work with 18:36
wireless keyboard
18:37 nathanmccauley__ joined
mikehh maybe i typed it will only work from an installed parrot 18:40
since the ins2 branch
it worked this morning when I tested on i386 but now after the ins2 branch was merged it don't work no more 18:42
18:50 mokurai joined 18:54 slavorg joined 19:04 davidfetter joined 19:06 eternaleye joined 19:13 eternaleye joined 19:19 mikehh_ joined
treed git bisect was able to tell me which commit broke things, but I can't figure out *why* that commit broke anything 19:32
Coke bah. sample in #773 isn't calling the PIR override, still. 19:42
(even with a local mod to PARROT_EXPORT it.)
any clues? 19:43
purl Dee Dee Dee!
Coke where are the function signatures used by vtable_override defined? 19:50
Argh. 19:56
inferior runloop strikes again.
pmichaud phone 20:00
treed Bleh. 20:01
parrot;Integer has a to_int method
cardinal;Integer definitely can not have that method
cotto it does that
(@Coke)
dalek kudo: a04c54b | pmichaud++ | build/Makefile.in:
Restore lost HAS_ICU definition (colomon++)
kudo: 67e3439 | pmichaud++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
treed I take it that it's not possible to to edit a method list at all? 20:03
changing the name to to_i would be sufficient
20:16 allison joined 20:20 particle joined
Coke (&#$ is this a PITA. 20:25
20:38 Tene joined
Coke ls 20:38
Tene No such file or directory.
Coke alright. so, I had 'toBoolean', a MMD helper sub to get me the boolean of all the various tcl pmcs. (numbers were easy, strings involved some work.) I changed this to use the get_bool vtable. This can't be done in straight PIR, needed an override in tclstring pmc to invoke the PIR version. Now whenever I say something like [ if {"foo"} {puts "hi"} ], I get an inferior runloop error, since the pir is calling to the pmc is calling to the pir wh 20:45
woof.
Infinoid that got cut off after "calling to the pir wh" 20:46
20:50 joeri joined
Tene Coke: you need splitlong.pl for your irssi 20:50
Coke ... irc sucks. =-) 20:51
to the pmc is calling to the pir which is throwing an error saying it's not a valid boolean value. this causes another 4 of tcl's tests to squawk about the .t exiting with '1' but passing all tests.
make that another 5 tests. 20:53
20:58 particle joined, hercynium joined
Coke (*&@#$. 20:58
now git fun trying to commit my 1 line patch back to parrot.
I have a git-svn repo; I have a git clone of that. work in the clone, commit, push. in the git-svn checkout... now I can't do a git svn dcommit. git diff shows nothing changed, but "my index is dirty" 20:59
moritz Coke: what about 'git diff --head'? 21:00
Coke invalid option --head
moritz erm, --cached
sorry
Coke that shows my change.
(which is already in the log)
moritz uhm 21:01
moritz confused
purl You won't be after this episode of Soap!
moritz normally git diff --cached shows the changes that are 'git add'ed but not yet committed
Coke this was from a push downstream, as i said.
moritz you could try a 'git reset --hard HEAD' and then dcommit
Coke ok. that worked. can you tell me why the push from the downstream clone caused the borkage? 21:02
dalek kudo: 81e46d5 | pmichaud++ | README:
Update the README a bit more to explain build+installation process.
21:03
rrot: r40504 | coke++ | trunk/src/oo.c:
This needs to be exported for HLL developers.
21:04
moritz Coke: somehow a 'git push' doesn't update your working directory, just the "index" (ie the .git files)
Coke: and that can cause confusion
Coke ok. is there a better command than git push to use ?
moritz which is why I use a third repo to syncronize two git repos 21:05
Coke I am using a 3 repos.
I hesitate to add a fourth.
moritz so I only ever push to the third repo
und pull from the other two
Coke yes. that's what I'm doing.
moritz I don't know a better command, sorry
Coke except that the one I'm pushing to was created as a git-svn clone.
allison, chromatic: is there confidence that whatever lorito turns into, it will resolve the inferior runloop problem? 21:08
ttbot coke: Parrot trunk/ r40504 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/69276.txt 21:09
Coke ttbot: see the comment for that commit.
muixirt Coke, what is the 'inferior runloop problem'?
Coke muixirt: rt.perl.org/rt3//Public/Bug/Display...l?id=57088 21:10
has to do with control flow over the C/PIR boundary. 21:11
let's say you have PIR that calls C that calls PIR.
if the inner PIR throws an exception, and you try to catch it in the outer PIR, your problem barfs.
cotto How did the term "inferior" come into use? "nested" or "inner" makes more sense to me. 21:12
Coke cotto: presumably it is not fully functional.
cotto That works.
Coke it's certainly better at failing!
s/your problem/your program/ 21:13
chromatic Ah, now I have a clean test run. 21:18
Coke, I believe so.
cotto chromatic++ 21:21
21:21 nathanmccauley joined
cotto does that mean a batch of commits are imminent? 21:21
21:22 AndyA joined
chromatic Depends on how bad the other cores are. 21:23
I need to TODO a test in t/op/interp.t, because interpinfo for PARROT_CURRENT_RUNCORE doesn't give an integer anymore.
I have to fiddle with t/run/options.t as well.
allison Coke: we'll always have the inferior runloop problem, but the more code that runs in our interpreter environment the less of a problem it will be 21:31
Coke: so, lorito is definitely a help
21:34 Psyche^ joined 21:39 jan joined 21:48 Whiteknight joined
dalek tracwiki: v91 | japhb++ | WikiStart 22:03
tracwiki: Add link to new ModuleEcosystem page
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff 22:04
tracwiki: v92 | japhb++ | WikiStart
tracwiki: Previous edit didn't autolink
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
cotto allison, ping 22:12
22:13 joeri left, Psyche^ joined
allison cotto: yo 22:14
cotto allison, you don't either know 1) Smalltalk or 2) of a VM other than Squeak that works uses something like Lorito that we could steal the ops from? 22:15
allison cotto: no, but I suspect our op set will be pretty unique
cotto You suspect that Squeaks ops wouldn't be sufficient? 22:16
allison that is, that we'd likely do best starting with a stripped down set of current parrot ops
I suspect Squeak's ops might be overkill in some places, and not sufficient in others, yeah 22:17
Whiteknight I'm not sure that's entirely the best, since Lorito is basically intended to replace components currently written in C
there isn't a lot of direct overlap between things currently written in C and the PIR ops
allison whitenight: except that all our current ops are written in C 22:18
22:18 Limbic_Region joined
Whiteknight allison: right, and we're intending to rewrite them in Lorito, which needs to do the same stuff as C 22:19
allison so, that gives us the basic behavior we need to support, which can then be broken down into smaller components
Whiteknight okay, I see what you are saying
allison another good perspective, looking at it from the other side, would be a review of our current C functions 22:20
specifically, the ones that are currently called from ops
Whiteknight Assuming that we only need one primitive to invoke a VTABLE, that could end up being a very small list 22:21
(unless we rewrite VTABLEs in Lorito, in which case it won't be) 22:22
allison eventually that's the idea, but we'd still need a way to invoke them 22:23
Whiteknight cotto: thanks for the message. I do know the difference between the two words but my stupid fingers usually type them wrong :)
chromatic Mr. Bender, your son has what we call "stupid fingers".
allison invoking a vtable function isn't a single opcode, though, since there are a whole host of different signatures
Whiteknight right right, I'm simplifying. 22:24
allison (probably more like the syntactic sugar of current sub and method invocation)
Whiteknight cotto: (although with the girly ads on that page, I thought you had sent me to a porn site) 22:25
cotto I didn't see those ads. That was entirely unintentional. 22:26
eternaleye Coke: When you are cloning from and pushing to a repository, it is _heavily_ recommended to make it a bare repository. All of the remote-oriented git commands operate on the index and the history without changing the working tree. One sec while I dig up some docs for it. 22:27
Coke: git FAQ has this git.or.cz/gitwiki/GitFaq#Whywon.27t...push.22.3F 22:32
Coke: Also, you don't need to distribute them by tarball or use a pure-git pushing system. The git-svn manpage has instructions on how to replicate a git-svn clone (grep for '--add remote.origin.fetch') 22:35
22:40 rg1 joined
dalek tracwiki: v1 | japhb++ | ModuleEcosystem 22:44
tracwiki: Initial notes from mailing list, translated to WikiFormatting</a>, lightly edited; more editing to come in next rev
tracwiki: trac.parrot.org/parrot/wiki/Module...ction=diff
kudo: 5c404cb | (Martin Berends)++ | README:
[README] tweak the build and install instructions
22:50
22:56 bacek joined
pmichaud anyone around who can talk about parrot_config a bit? 22:59
in particular -- I switch Rakudo so that it uses installed parrot instead of build tree, and now it won't build on msvc 23:00
(er, msvc++)
my specific question: what is the intended difference between inst_libparrot_ldflags and inst_libparrot_linkflags ?
allison: ping (see above) 23:02
purl I can't find (see in the DNS.
23:03 ruoso joined
allison pmichaud: pong 23:06
allison looking over question
23:07 kid51 joined
pmichaud kid51 might know :-) 23:08
my specific question: what is the intended difference between inst_libparrot_ldflags and inst_libparrot_linkflags ?
purl i already had it that way, pmichaud.
allison pmichaud: the difference is whether they use build paths or installed paths 23:09
pmichaud huh?
I would think that would be the difference between inst_libparrot_ldflags and libparrot_ldflags
and inst_libparrot_linkflags and libparrot_linkflags
i.e., I figured the "inst_" is the distinguishing factor between "installed" versus "build" 23:10
allison oh, that's what I thought you were asking
pmichaud no
nopaste "darbelo" at 200.49.154.172 pasted "inst_libparrot_linkflags and inst_libparrot_ldflags for me." (5 lines) at nopaste.snit.ch/17527
pmichaud we have both inst_libparrot_ldflags and inst_libparrot_linkflags
and I'm wondering why two
allison on linux, ldflags is empty
pmichaud right
allison what is it on windows?
pmichaud looking 23:11
22:27 <jnthn> inst_libparrot_ldflags => ''
22:27 <jnthn> inst_libparrot_linkflags => '-LC:/Consulting/rakudo/parrot_install/lib -lparrot' 23:12
allison looks like ldflags is only used on windows and cygwin
pmichaud the *_linkflags version is apparently wrong for msvc++
however, *_linkflags is what pbc_to_exe is using.
allison so, inst_libparrot_ldflags is empty on windows too? 23:14
pmichaud apparently 23:15
23:15 Austin joined
allison (looking at jnthn's entry) 23:15
pmichaud my discussion with jonathan is at irclog.perlgeek.de/perl6/2009-08-12#i_1389138
if you want to review what we found there to see if there are any clues
allison *_linkflags is the right field to use
pmichaud okay. partcl is using *_ldflags
so is dynpmc/ subdir
allison if it's wrong on windows then it's a configuration problem
ah, but they're only using it as an addition to linkargs 23:17
pmichaud well, that's where we'd be using it
i.e. this is occurring when we're building dynpmcs/dynops
allison aye, but the fact that it's empty means it could just be removed
pmichaud I'm fine with that. 23:18
removing things is good :)
allison all that was cargo-culted from the old generated dynoplibs.pl
Austin pmichaud: Is there a way to get (force) integer division in NQP? (Particularly, division by 2)
pmichaud Austin: only using Q:PIR at the moment
Austin Okay, that's what I'm doing. Thanks.
allison try removing *_ldflags entirely
pmichaud okay. We'll do that and report back tomorrowish.
we may need to fix *_linkflags then for msvc++... although I'm a little surprised it hasn't bitten us before now 23:19
(in pbc_to_exe)
23:22 TonyC joined
allison pmichaud: is it pointing to the wrong path? 23:22
pmichaud I think the problem is that its not formatted as a proper msvc++ argument 23:23
allison curious
pmichaud irclog.perlgeek.de/perl6/2009-08-12#i_1389293
if jonathan switches it to use libparrot_linkflags then he's able to build 23:25
but of course, that's the wrong (build) version
on jonathan's system: 23:26
dalek tracwiki: v2 | japhb++ | ModuleEcosystem
tracwiki: Incorporate Allison's first review email notes; visual tweaks
tracwiki: trac.parrot.org/parrot/wiki/Module...ction=diff
pmichaud libparrot_linkflags = "C:/Consulting/rakudo/parrot\\libparrot.lib"
inst_libparrot_linkflags => '-LC:/Consulting/rakudo/parrot_install/lib -lparrot'
allison my guess? inst_libparrot_linkflags was only configured for cygwin 23:27
and reini didn't bother to add the regular windows version 23:28
pmichaud okay.
I'll pass that along to jonathan.
thanks. 23:29
just knowing that *_linkflags is the correct version is a huge help 23:30
allison pmichaud: have him look at config/init/hints/mswin32.pm lines 112-116 23:35
pmichaud I looked at those already
allison yeah, seems like it's missing one for inst_libparrot_linkflags
pmichaud but there must be something else going on there
let me look again (I noticed something odd)
allison yes, there's a default set elsewhere 23:36
pmichaud line 253 I found very odd
....but now that I look at it, I'm guessing those are for a different compiler
allison ah, that's windows gcc 23:37
pmichaud something _somewhere_ is setting inst_libparrot_linkflags to be a different value from libparrot_linkflags
It seemed odd to me that 253 was using $bindir, somehow 23:38
I would've guessed a different dir. I guess it wants the .dll to be in the same dir as the executable, though.
allison could be
kid51 reads scrollback ... what is it I'm supposed to know? 23:39
pmichaud actually, 253 looks like it's for mingw
(is mingw actually gcc?)
I'm guessing that msvc requires changes to line 115 23:40
(around line 115)
nopaste "kid51" at 68.237.15.24 pasted "mingw" (2 lines) at nopaste.snit.ch/17528 23:41
pmichaud kid51++ # thanks 23:42
kid51 mingw? 23:43
purl i think mingw is a native port of GCC to windows or a contraction for "Minimalist GNU for Windows" or www.mingw.org/
kid51 ... and that's as much as I know about it 23:44
pmichaud kid51: thanks. I was wondering about the various configuration options, but I think allison++ has clarified things for me
darbelo mingw is also included in Strawberry Perl 23:46
purl okay, darbelo.
23:47 nathanmccauley_ joined 23:48 patspam joined
dalek tracwiki: v3 | japhb++ | ModuleEcosystem 23:55
tracwiki: More edits from emails
tracwiki: trac.parrot.org/parrot/wiki/Module...ction=diff