Parrot 1.0 Released | parrot.org | Thanks to everyone who helped get 1.0 out the door!
Set by moderator on 18 March 2009.
00:04 TiMBuS joined 00:09 AndyA joined 00:34 tetragon joined
Coke do we still expect to be able to generate PASM from PIR? 00:35
00:43 eternaleye joined
dalek rrot: r37603 | coke++ | trunk (2 files):
Test /all/ POD files when trying to compile PIR.
01:12
Coke Whiteknight: ping 01:16
Whiteknight Coke: pong
Coke Whiteknight: run t/examples/pod.t 01:17
one of the book samples fails.
blame says you added it. =-)
Whiteknight okay, let me take a lookie 01:18
01:20 neuralis left
Whiteknight all tests pass for me 01:20
Coke did you up? 01:21
need r37603
dalek rrot: r37604 | coke++ | trunk/docs/intro.pod:
[docs/t] add more PIR targets so this code is eventually validated.
01:24
Whiteknight ah, I was 1 commit behind 01:26
Coke yah, before that, book wasn't checked for samples.
Whiteknight so it's not my fault, it's your fault for adding it to the test? 01:27
:)
Coke it's particle's fault. 01:29
Whiteknight fix coming through now 01:30
Coke whee. I just added more of those blocks to ch04 which highlight more issues. 01:31
Whiteknight STOP HIGHLIGHTING MORE ERRORS!
Coke As soon as you give us a new GC!
Whiteknight I'm not fixing anymore tonight, I'm heading to bed
Coke =-)
I'll give you a cookie.
(I have a box of GS cookies here somewhere.) 01:32
Whiteknight I'll take th cookie with me to bed
dalek rrot: r37605 | coke++ | trunk/docs/book/ch04_pir_subroutines.pod:
[docs/t] add more PIR targets so this code is eventually validated.
purl i already had it that way, dalek.
jonathan Whiteknight: OH HAI 01:34
Whiteknight hey jonathan!
purl jonathan is mailto:jnthn@jnthn.net or trying to put together a grant application. or however seeing weird issues.
jonathan Whiteknight: I seem to remember a while back you maybe stated an interest in getting Parrot's socket I/O working again?
If I remember wrong just ignore me. :-)
Whiteknight jonathan: I express lots of interests, that was definitely one of them
part of a larger interest in getting the async IO system working eventually 01:35
jonathan Whiteknight: Some Rakudo users really want socket IO.
Whiteknight right after I fix the GC and cure cancer
:)
jonathan Whiteknight: I don't know what your priorities are, but if you're looking to do something that is wanted, that would certainly be high on my want list.
(Because once Parrot does it, Rakudo can easily use it.) 01:36
Whiteknight Okay, I'll bump that up the list and take a look into it
dalek tracwiki: v59 | coke++ | WikiStart
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
shorten dalek's url is at xrl.us/bekxfz
dalek rrot: r37606 | whiteknight++ | trunk/docs/book/ch03_pir_basics.pod:
Fix a PIR error in one of the samples from the book that I added
jonathan Awesome, thanks! :-)
Whiteknight++
Whiteknight okay, I REALLY need to go to bed no
I'll talk to you guys later
jonathan Night 01:37
Coke night!
jonathan epicly does NOT want to do the socket IO support himself...
At least partly because I know bugger all about socket I/O. 01:38
Coke would you like to make a parrot 1.0 release for macports? =-) 01:39
dalek tracwiki: v60 | coke++ | WikiStart 01:40
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
shorten dalek's url is at xrl.us/bekxgb
dalek tracwiki: v1 | coke++ | DocsTasklist
tracwiki: add a cage docs task.
tracwiki: trac.parrot.org/parrot/wiki/DocsTa...ction=diff
shorten dalek's url is at xrl.us/bekxgd
jonathan Coke: Actually compared to that I'd rather do socket I/O.
Because I know even _less_ about macports.
Coke just making 'make install' work on os x for 1.0.0 would suffice. =-)
jonathan Does that not have making time travel work as a pre-requisite? 01:42
Coke having a patched version work counts.
jonathan :-)
If I had any Mac hardware at all lying around that'd be easier.
Actually, I lie. I have an iPod. 01:43
Coke I can make you a login on this box.
though I wish allison would swing us some nice os x server donated somewhere. =-)
jonathan You could make me a login, but tbh I'd probably block on knowledge of OS X shortly afterwards. 01:44
And which point there's Google, which I'm quite sure you're equally capable of using. :-|
So I fear I'd not be a great deal of use. 01:45
Coke but I'm lazy! 01:46
(I really don't want to work on it, because it's going to make rip out huge portions of Configure) 01:47
01:49 Andy joined
jonathan I've barely looked at Configure for ages. 01:51
I remember doing a lot of Win32 support tweaks in it years back, but that was before kid51 did a bunch of work on it. 01:52
Coke As I vaguely understand it, my problem is configure.pl ignores things I specify on the command line if the hints file disagrees with me. 01:53
my secondary problem is that I can't fix the hints file to DTRT for shared libs so i can avoid having to specify my non-shared options on the command line. 01:54
kid51 jonathan: Since I haven't worked on Win32 since before I joined the project, the Win32 parts should be exactly as you left it, for better or worse.
Coke (my tertiary problem is that I have little incentive to change how configure.pl works if we're going to be ditching it for something not written in perl) 01:56
dalek rrot: r37607 | coke++ | trunk/t/pmc (2 files):
UnSKIP a passing test, convert another to a TODO.
kid51 Coke: And who is the magic person who is going to come along and rewrite all our configuration in non-Perl? 01:57
Coke kid51: I was hoping for someone who wasn't me.
kid51 I'd like to meet that person. Maybe I could learn the general theory of configuration!
Coke we had that person, but enough people managed to piss him off that he's not touching config in any substantive way. 01:58
(and no, I don't mean me.)
jonathan kid51: I wasn't suggesting you did anything wrong - just that I've not had need to look at the Configure codebase for a while because it's worked fine for me. :-) 01:59
Coke msg rurban is RT #42411 closable?
purl Message for rurban stored.
kid51 jonathan: I didn't take that implication. Yes, I view what I have done with Configure.pl as making it better Perl 5 and therefore more stable and surprise-free. 02:01
jonathan To be honest, I think porting Configure away from Perl 5 is a while off. 02:03
It's a worthy goal, sure, but being realistic it's a while off. 02:04
kid51 If we found some brilliant college student, it would be a great GSOC project. 02:05
Even a portion of that, such as eliminating our dependence on Perl 5 %Config, would be a good GSOC project. 02:07
jonathan Aye, that's a good point.
rg i'm thinking we might want to have a hll in core parrot (maybe an extended version of nqp) that can be used to replace things we're currently using perl for. 02:09
kid51 But how could we use that HLL to probe for things in the absence of a Parrot executable? 02:11
rg we'd depend on an older pbc_to_exe version of that hll 02:13
it gives you a lot of bootstrapping problems, though, that's true.
Coke (while off) 3.0
rg the only other choice i can see it to actually use sh like autoconf or perl configure 02:14
Coke rg: only need to extend nqp if it's not good enough. =-) 02:15
we'd still need to get enough of parrot to run even a precompiled PBC.
kid51 The Perl Configure rests on metaconfig (?) which was written by Larry as an alternative to autoconf. 02:17
And knowledgeable people with whom I've spoken have said, "Don't go near autoconf." 02:18
Problem is that both those technologies are old in IT years and very few people are expert in them.
Coke parrot has a long, inglorious tradition of recreating wheels that we don't need to. Hopefully we won't repeat that mistake with a config do-over.
rg coke: self-hosting kind of implies that an older version of the language is used to build the current version 02:19
Coke ... in fact, given our project, that could almost be our motto.
kid51 Well, at least the current *structure* of configuration should give us a guide to what needs to be done and in what order.
Coke one would hope, yes. 02:20
rg actually, what we might want to hope for is that rakudo will be mature enough that when we decide to be self-hosting, we can just use that :) 02:21
so we'd go perl5 -> perl6 :)
kid51 Then I would actually have to *learn* Perl 6! I've been participating in Parrot to avoid having to do that! 02:22
rg after looking at moritz++'s very nice tutorials, i don't think it's all that hard 02:23
dalek tracwiki: v11 | coke++ | ParrotLongTermRoadmap 02:24
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/bekxme
02:26 Tene joined
Coke rg: I think using rakudo as our config system is pretty crazy. 02:26
NQP, I can see that. 02:27
we really should use NQP or another HLL-like thing more internally anyway.
in fact, someone should find a suitable library file and rewrite it in NQP. =-)
dalek tracwiki: v1 | coke++ | ParrotBasedConfig 02:28
rg coke: i could however take your last comment as a prediction that we're not going for self-hosting. is that what you're thinking?
dalek tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
tracwiki: v2 | coke++ | ParrotBasedConfig
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/bekxm3
dalek's url is at xrl.us/bekxm5
Coke I think self hosting your /config system/ is hard. 02:30
even gcc doesn't do that, do they?
rg no, they all use autoconf
Coke seems vaguely sane to me. =-) 02:31
rg i'm not so sure
Coke Here's my concern: reinventing wheels, doing things the hard way because it's cool. We have more important things to worry about than figuring out how to get self-hosting working. 02:32
allison the "everyone is using autoconf" is certainly a plus in my book 02:33
Coke if it is a lower workload to use an /existing/ toolset that has its own support mechanism and is open source and we can push fixes back to...
allison it may not be perfection, but that at least tells us it's not tortuously bad
Coke I'm just saying, let's consider that as an option.
I certainly don't want to learn autoconf, but it has to be easier than learning Configure.pl. =-) 02:34
allison :)
rg i'd like to hear an opinion on using perl's configure.sh ;) 02:35
allison hmmm... I need something for pynie that's not perl. It doesn't have to do much, since it can access parrot_config. autoconf might be worth trying as an experiment
Coke allison: do you have a feel for when pirc is due to land? 02:36
allison it's heavily dependent on its current primary developer 02:37
it may need more volunteers involved to push it the final bit of the way 02:38
Coke has anyone reviewed the progress to make sure it's on the right track compared to IMCC?
kid51 rg: We currently *do* use Perl 5's configure.sh -- to the extent that we import the results of Perl configuration in auto::defaults.
allison Coke: I haven't looked at it in detail
rg kid51: well yes. but we'd need to use it directly, so we can influence optional settings 02:40
allison why does autoconf on windows require perl? 02:42
Coke because they had no sh?
Coke guessing.
purl rumour has it guessing is lame
Coke purl: so's your mother.
purl Coke: huh?
allison wait, heck... *all* autoconf requires perl
kid51 Wuh-oh!
gravity automake is a perl script 02:43
Coke not a showstopper for me. =-)
gravity (not sure if that's also under consideration)
rg oops, that's right. :(
allison it's just adding another dependency to our dependencies...
kid51 no problem! 02:44
Coke having dependencies isn't terrible. =-)
allison <sigh> It's turtles all the way down!
Coke the way we're using perl NOW is evil. I can see a way that involves almost no evil.
rg how is that evil?
allison Coke: that's fair, yes
rg: he said "the way we're using it" not "the fact that we're using it" 02:45
rg probably hasn't seen enough of the way we're using perl 02:46
Coke rg: the evil bit is that we assume parrot is being built with the same compiler that perl was.
so we steal lots of perl config information that is quite possibly wrong.
(and occasionally makes parrot go boom.)
kid51 config/auto/defaults.pm
rg i think it's a reasonable assumption and it's easy and possible to override (i do it for sparc all the time ;))
Coke but having perl be part of our build process isn't crazy.
you can't always override. 02:47
the way config is currently built.
(but then you're not overriding hints, not not override perl5.)
Coke closes a few RTs today
kid51 Could we have another 'not' in that sentence? ;-) 02:48
dalek tracwiki: v3 | coke++ | ParrotBasedConfig
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/bekxqn
Coke allison: perhaps you could diplomatically close RT 37115
rg coke: allison just disconnected
Coke msg allison perhaps you could diplomatically close RT 37115 02:49
purl Message for allison stored.
Coke rg: dank
rg: danke
02:49 allison joined
kid51 Perhaps if on the Wiki we had a table that mapped the values extracted from Perl 5 %Config to why we're concerned with them (or not). 02:50
Coke I think rather than try to explain our current system, we might want to design a new one. 02:51
(that may involve off the shelf components!) 02:52
kid51 And 'design a new one' does not entail reinventing wheels?
The Perl 5 defaults are, in one sense, the most *unexplained* parts of our configuration system. 02:53
allison kid51: it has the potential to involve reinventing wheels, but it doesn't *have* to
kid51 All the subsequent steps are *explained* to the extent that we've got tests covering all the code. 02:54
allison Like, what if we translated our current system, almost exactly, to something like autoconf
kid51 k
rg so you are effectively reinventing autoconf (to the extend that you need for parrot) 02:55
Coke having tests covering the code doesn't mean it's a good design.
allison we've really worked out the kinks in what it takes to configure and build parrot, so we don't throw that knowledge away
Coke it just means that the code that was originally slapped together is tested.
allison we learn from it, and improve based on what we know
Coke I'm not suggesting throwing everything out. I would just like to start a redesign with a design.
allison ah, yes 02:56
rg coke: what is prompting you to do that right now?
kid51 Coke: Agreed. I never challenged the fundamental design of configuration. I wouldn't have been competent to do so. But the tests are one way of making manifest what the design is, FBOW.
allison that should likely go on the roadmap
Coke rg: the fact that I cannot install (#&@$ parrot on OS X.
because the config system is flawed. That's why I started ranting about it earlier.
allison we have a milestone for replacing the buildsystem, but not one for designing a build system
Coke allison: I assumed that any major items would need to be designed first. If you want to make that explicit, thascool. 02:57
allison Coke: I kind of liked having PDD milestones as well as implementation milestones, it helped me focus on one before the other 02:58
Coke I would recommend, by default, putting a design milestone a full stable release ahead of the impl.
crap. now I'm reminded of code.google.com/p/perl-devel-nytpro...tail?id=14 02:59
shorten Coke's url is at xrl.us/bei34x
Coke anyone with XS shaped tuits, fixing that would help parrot. 03:00
rg coke: isn't redesigning the whole config (while necessary to get rid of the perl dependency) a bit overkill?
Coke rg: not if it was never designed in the first place.
If you could point at the design of the current system, sure, we could take that and run with it. that document doesn't exist. 03:01
as kid51 pointed out, it's enshrined in code, and tests of code.
rg: writing code without knowing why you're doing it is /definitely/ a waste of time.
we can certainly limp along with config as is. 03:02
kid51 Actually, there's one aspect of the current system I would like to jettison: All the user prompts in the 'inter' steps. (1) Only 1 parrot developer has ever 'fessed up to using them. (2) They require more complicated tests.
Coke And I'm not suggesting we /change/ the whole design. I'm suggesting we /have/ a design before we rewrite the implementation. 03:03
that new design may very well be mostly comprised of the old design.
kid51: no, they don't require tests. =-)
kid51 writing code without knowing why you're doing it is ... often called "having a job"
Coke but that's an old argument I don't feel like having again.
If we want interactive prompts, seems it should be possible to make everything interactive, not piecemeal, and then have a single test. 03:04
rg may i point out that you'd still need a fix for osx much sooner than a new config system could arrive? 03:05
Coke rg: if you'd like to parrot what I said, sure.
rg: I'm aware that redoing config is a big deal. I'm not arguing about doing it sooner than 3.0 03:06
rg?
purl it has been said that rg is Rolf Grossmann <mailto:rg@progtech.net>
rg ok, so you're mostly ranting and in the process at least trying to get a design for a new config :) 03:07
Coke I'm not trying to design the config right now either.
Just pointing out that a design needs to be on the roadmap, which it will be, presumably for 2.5, which is still over a year away. Plenty of time. =-)
... and this configure discussion has been going on for... years already. 03:08
at least since kid51 started cleaning it up.
Resending code.google.com/p/perl-devel-nytpro...tail?id=14 in case anyone has XS shaped tuits. =-)
shorten Coke's url is at xrl.us/bei34x
pmichaud hello, all. 03:14
Coke pmichaud: EEK!
pmichaud wonders what "EEK!" is meant to mean in this context :-) 03:15
anyone know of any blockers to the rakudo release?
I guess I scared everyone away? 03:20
rg not me, but i can't help you.
dalek rrot: r37608 | allison++ | trunk/ports/ubuntu (2 files):
[ubuntu] Updates from producing the packages.
03:24
allison pmichaud: hip, hip, hurray! 03:26
pmichaud allison: congratulations on Parrot 1.0. Outstanding work. 03:27
allison pmichaud: thanks!
dalek rrot: r37609 | allison++ | trunk/ports/debian/rules:
[debian] Some changes made while generating packages.
03:28
allison Coke: RT #37115 closed 03:31
03:41 janus joined 03:49 Andy joined
Coke allison: no email? 03:54
no email.
allison Coke: email? 03:55
purl rumour has it email is sms => about as "pager" as I have to deal with or Catalyst::View::Email
allison Coke: oh, for the ticket closing?
dalek kudo: 80344fd | pmichaud++ | docs/ChangeLog:
More ChangeLog updates for release #15.
04:09
shorten dalek's url is at xrl.us/bekxzb
dalek kudo: 44e1496 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION for release testing.
shorten dalek's url is at xrl.us/bekxzf
dalek tpfwiki: jonathan@leto.net | PIR Tutorial and FAQ 04:15
tpfwiki: www.perlfoundation.org/parrot/index...al_and_faq
shorten dalek's url is at xrl.us/bekxzo
Coke stop upating that wiki! 04:30
dukeleto: please use the trac.parrot.org wiki 04:31
dukeleto Coke: 'twas an accident 04:32
Coke =-) 04:33
we've been trying to kill that thing for months. =-)
dukeleto I have an axe. 04:37
Coke "It's a trick."
Tene Coke: you still looking for regular access to an x86_64 box? 04:40
pmichaud afk # back tomorrow morning
Tene 'night pm
Coke: *obviously* the solution to the =no problem is yet another config option for configuring how you say no. --false-style=prefix-without ;) 04:45
Coke tene: still!? 04:54
tene: (config) *thwap*
Tene Coke: I have vague memories of you looking for access to an x86_64 box for parrot work. I might have just made it up, though.
Coke might have once. Don't need it now, except to close out tickets in RT. 04:55
let's cut out the middle man, and you can just monger the tickets directly. =-)
I have enough trouble with the machine on my desk.
Tene I don't have anything available, but a friend does.
Coke best I can suggest right now is have him setup a buildbot/smolder client. 04:56
06:54 uniejo joined
Tene wtf? 07:38
$P0 = get_hll_namespace is giving me null
how does that make any sense? 07:39
purl: msg jonathan There are a few problems with use that I was trying to fux, but ran out of time... 08:16
purl Message for jonathan stored.
Tene purl: msg jonathan If you look at the generated pir, calls to use happen *after* the main block runs
purl Message for jonathan stored.
Tene purl: msg jonathan Also, the issue I was trying to fix in the first place, 'is export' does put subs in the export::all subnamespace, but 'use' never fetches them. Things only seem to work now because nothing use package{}, so all subs are ending up in the global namespace anyway 08:18
purl Message for jonathan stored.
Tene sleeps 08:19
08:55 agnislav_ joined
agnislav_laptop hi all. still can't run compiled bytecode... :( any help is appreciated 08:56
09:09 bacek joined 09:50 korshak joined 10:17 masak joined 10:22 contingencyplan joined 10:43 NotFound joined
NotFound hi 10:43
mikehh Notfound: hi 10:49
rakudo (44e1496) builds on parrot r37609 - make test/make spectest PASS 10:51
10:58 ruoso joined
dalek kudo: 977b948 | jnthn++ | src/builtins/control.pir:
Fix eval crash when eval is used inside a class.
11:59
shorten dalek's url is at xrl.us/bekyix
dalek kudo: cba1557 | jnthn++ | docs/ChangeLog:
Add a few more bits to the ChangeLog.
12:12
shorten dalek's url is at xrl.us/bekyi9
dalek kudo: 9a08c4f | (Cory Spencer)++ | (5 files):
Added inline PIR versions of Any.pm's lc, ceiling, floor and round to the P6 Any.pm class.

commit 59873f07aa08081cc2d5e915ce309d733935cb54 Author: Cory Spencer <cspencer@sprocket.org> Date: Thu Mar 19 18:19:21 2009 -0700
   Added an inline PIR P6 version of lc
commit 65b75d2b6266adaae8caac230cc55462467c8c0c Author: Cory Spencer <cspencer@sprocket.org> Date: Thu Mar 19 16:06:26 2009 -0700
   Add inline PIR versions of round, ceiling and floor
commit 9a873239e9a0fb86d4d11dc2f141d6081d2e1a23 Merge: 8592d17... f8b6aee... Author: Cory Spencer <cspencer@sprocket.org> Date: Thu Mar 19 14:28:57 2009 -0700
   Merge branch 'master' of git://github.com/rakudo/rakudo
Signed-off-by: Moritz Lenz <moritz@faui2k3.org>
12:29
shorten dalek's url is at xrl.us/bekyke
12:30 korshak left 12:31 Whiteknight joined 12:35 rg1 joined
mikehh t/examples/pod.t - Failed tests: 13-14, 16-19, 22 12:44
Whiteknight yeah, those are known 12:58
we're working on it
or, I will be working on it eventually 12:59
Coke-zzz hopefully that test will settle down shortly and we'll have things fixed or TODO'd depending on what snippets have been added. 13:02
dalek kudo: 2352fd0 | jnthn++ | src/builtins/eval.pir:
When we do a use, we need to make sure the recursive invocation of the Perl 6 compiler gets a clean @?NS, otherwise thigns start getting nested in namespaces in the non-pre-compiled case.
13:03
shorten dalek's url is at xrl.us/bekyoj
dalek kudo: 8207372 | jnthn++ | (5 files):
Merge branch 'master' of git@github.com:rakudo/rakudo
shorten dalek's url is at xrl.us/bekyom
13:10 Ademan joined
mikehh all other tests in make fulltest pass at r37609 13:10
pmichaud good morning #parrot 13:20
Whiteknight good morning pmichaud! 13:25
13:30 fperrad joined 13:48 gryphon joined 14:06 rdice joined
davidfetter mornin', all 14:16
dalek rrot: r37610 | coke++ | trunk/docs/intro.pod:
[t/docs] - t/examples/pod.t pointed out broken PIR
14:18
14:30 dusty joined
dusty Is there a chance of messing up my perl on Mac OS x if install parrot from ports? 14:30
dalek kudo: db1e872 | pmichaud++ | docs/ChangeLog:
Final ChangeLog for release #15.
14:38
shorten dalek's url is at xrl.us/bekyzt
dalek kudo: f67507c | pmichaud++ | docs/release_guide.pod:
Release date and name updates.
shorten dalek's url is at xrl.us/bekyzv
dalek kudo: e552334 | pmichaud++ | docs/announce/2009-03:
Text of 2009-03 release announcement.
shorten dalek's url is at xrl.us/bekyzx
14:43 Theory joined 14:59 rg joined 15:03 Tene_ joined
Coke dusty: do NOT install parrot from ports on osx. 15:04
it's a VERY old version.
you're better off running it out of the build dir for now.
(If you want to help me make a macport for 1.0.0, that'd be awesome. =-) 15:05
dusty Coke, I don't know that I have the skill for that, what all is entailed? 15:07
Coke right now, we can't build a static binary because of a config bug; we can't build a dynamic one because we end up linking to the library in the build dir. 15:08
so we need to fix one of those issues to get the install working.
at that point, making the macport is trivial.
(we already have a Portfile setup that just needs some minor updates.) 15:09
there's a trac ticket...
trac.parrot.org/parrot/ticket/344
dusty I'm looking at it, looks beyond me, but I'll look at again when I get home, thanks for answering my question 15:11
Tene_ jonathan: ping 15:19
jonathan Tene_: pong 15:21
Tene_ jonathan: I've got a handfull of problems with 'use' in rakudo... 15:22
mentioned them last night in here
Interested in looking or discussing?
jonathan Sure, probably is good if pmichaud is in on the discussion too. 15:23
Though not sure if he's about right now...
Tene_ The main thing is that 'use' doesn't actually respect 'is export'.
and while subs tagged as 'is export' *are* put in the ::EXPORT::ALL namespace, the only reason anything (like Test.pm) acts like it exports things is because nothing uses 'package' declarations, so everything ends up in the root namespace anyway. 15:24
jonathan Yes, I know Test.pm cheats on that. 15:25
Tene_ also, in the generated PIR, use statements are generated in a block *after* the main block.
So they would run after the entire program finishes.
jonathan Hmm...that's odd, because use does at least sort of work. 15:26
(Which you'd expect it to not do so at all in that case)
Tene_ it works because of 'use' running in actions.pm
jonathan Ah. And thus is broken for pre-compiled modules? 15:27
Tene_ afaict
well, if they use 'use' statements.
jonathan hmm 15:28
@?BLOCK[0].loadinit().push(
PAST::Op.new(
PAST::Val.new( :value($name) ),
:name('use'),
:pasttype('call'),
:node( $/ )
)
);
It's sticking it into the loadinit of the outer block...
Erm
Of the current block, sorry.
But I guess that means if the current block gets marked :load :init then yes, this happens after it runs...
Tene_ Hmm. Maybe nevermind. 15:29
Checking with precompiled 'use Test; plan 1', and it works fine.
jonathan Ah, OK.
Tene_ So maybe I was just falling asleep by the time I "noticed" that part. :)
jonathan :-)
15:29 TimToady joined
jonathan OK, but the point about not respecting is export stands. 15:29
15:30 diakopter joined, particle joined
Tene_ ah, yes, the *first* block there calls the later block that calls use. 15:31
jonathan Aha.
OK, but that still means we need to make import work. :-) 15:32
particle i think everything is in place to make that possible now
Tene_ I tried adding code to do it, but ran into problems with get_hll_namespace returning null pmcs. I was (apparently) kind of asleep, so might have just been incompetent. 15:33
One other issue is that the 'use' that is called from actions.pm *shouldn't* do this.
I ended up just .return()ing if the caller's namespace was Perl6::Grammar::Actions, but that's hardly correct. 15:34
jonathan Tene_: Shouldn't import?
Tene_: I think it needs to,.
Oh, maybe not.
jonathan thinks
Tene_ jonathan: import into the Perl6::Grammar::Actions namespace?
particle who's doing a use from actions.pm? 15:35
jonathan Tene_: No, it should import into the namespace of the program where the use is written.
We at least need to make sure any types that are exported get imported.
Tene_ particle: method use_statement calls use to get the symbols and such loaded at compile-time.
jonathan Though if you write a class A { } in a A.pm and the use A; is there import/export going on there? 15:36
Or is that just simply that it installs A in the namespace? 15:37
Tene_ jonathan: so it should import into @?NS[0] namespace?
jonathan Tene_: I figure so, yes.
Tene_ Okay.
So maybe a !EXPORT_SYMBOLS that is both called at parse-time and at runtime, like 'use'?
jonathan Something like that. 15:39
purl Something like that. is that true?
jonathan Maybe !IMPORT_SYMBOLS is more the name though?
Tene_ Maybe. I say export because as a first draft, you could just call hllcompiler's EXPORTALL method. 15:40
Which suggests a similar naming convention.
jonathan Ah, true. 15:41
I guess it depends which side you're looking at it from. :-)
Tene_ fwiw, the specific case I was working on was generating a lot of subs. for <a b c d e> { Foo::Bar{$_} = sub { ... } } 15:43
jonathan: think you'll work on this today, or did you have other plans? 15:44
jonathan Tene_: Haven't got a great deal of other plans, if it matters to you I don't mind working on it. 15:47
Would like to hear pmichaud's opinions before I dig in, to sanity check this, though.
Tene_ nods.
15:48 particle1 joined
Tene_ Would be nice. If you don't, I'll end up working on it again tonight anyway. I'd like to hear pmichaud's take on it first too. 15:48
16:12 Andy joined
dalek kudo: 4c90262 | jnthn++ | src/parser/ (2 files):
Support renaming of named parameters in the signature. This also takes us a couple of steps closer to STD.pm.
16:25
shorten dalek's url is at xrl.us/bekzf5
dalek kudo: 703b36e | jnthn++ | docs/ (3 files):
Merge branch 'master' of git@github.com:rakudo/rakudo
shorten dalek's url is at xrl.us/bekzf7
16:46 jan joined
allison FYI, we've had 13,526 visitors to parrot.org since we set up google analytics on wednesday (so, that's only counting part of wednesday, and all of thursday) 17:00
particle1 would you grant me access to that data? 17:01
Whiteknight google analytics is hot stuff 17:02
allison particle: already did when I first created it. if you log into google.com/analytics with your gmail account you should see it all 17:04
particle: (granted you admin access too)
particle1 great, thanks! 17:16
17:21 uniejo joined 17:24 barney joined 17:39 particle joined 17:40 uniejo joined
dalek kudo: 83e060f | jnthn++ | src/builtins/guts.pir:
We need to !DEREF foreign invocants that might have got put in a Perl6Scalar.
17:51
shorten dalek's url is at xrl.us/bekzt4
17:54 davidfetter joined
dalek kudo: 7b9f811 | jnthn++ | (3 files):
Start to move some methods in IO over to the Perl 6 setting, improving error handling to be more in line with S32 along the way.
18:11
shorten dalek's url is at xrl.us/bekzxw
dalek rrot: r37611 | coke++ | trunk/docs/user/pir (4 files):
[t/docs] test more sample PIR.
18:24
rrot: r37612 | coke++ | trunk/t/examples/pod.t:
[t] fix argv handling to actually so specifying files on the command line actually works.
18:29
19:00 tuxdna joined 19:03 lucs joined 19:35 bsdz joined
dalek rrot: r37613 | coke++ | trunk (2 files):
[t/docs] Verify PASM snippets too. Add a single PASM target
19:35
bsdz hi, anyone know anything about parrot math ops? 19:36
Coke What's the question? 19:37
purl the question is how a _separate_ package could help with the install
bsdz thanks Coke: is there any reason why round() is not supported?
i know i can floor(?+.5) 19:38
Coke I don't know that it was purposefully excluded. 19:39
bsdz perhaps i should create a trac?
particle we're missing another math op, too. cot or something 19:40
i know one of them is missing.
bsdz i could include that in my trac
Coke sure. open an RFC
bsdz ok thanks
tuxdna hi, anyone here who is familiar with parrot_debugger.c ?
Coke that I will not admin to. =-) 19:41
tuxdna Currently parrot_debugger requires a filename to be given on the command line 19:42
this file is read ( in case of pbc ) and compiled ( in case of say pasm ) and fed to embedded parrot for debugger 19:43
now when I do not provide a file name ( ofcourse by modifying the parrot_debugger.c commad line options ), the debugger croaks 19:44
Any ideas on how I can set up debugger with some code to be fed for embedded parrot so that the debugger works without making a filename necessary on the commnadline? 19:45
Coke where would the debugger get data from? 19:47
s/data/code?
particle use a named pipe? 19:48
Coke you just want it to start up... empty? (nothing wrong with that, just wondering where you're going.)
tuxdna yes. i want the debugger to start empty so that the file can be loaded later using ;load' command 19:49
Coke that should be doable.
I have to run. Open a trac? 19:52
Tene_ I thought we were moving away from the perlfoundation.org/parrot/ wiki... 19:57
tuxdna thanks Coke_afk 19:58
allison Tene: yes, the perlfoundation.org wiki is on the way out 20:04
allison migrating to new location
Tene_ Andy's latest perlbuzz twitter post linked to it.
Andy Can't imagine that's a problem. 20:05
Tene_ No idea. 20:15
That's what I was asking about. 20:16
particle i wonder what channel allison is migrating to... 20:17
20:26 dolmen joined
bsdz hi, anyone know if it's possible to dynamically create pir sub pmcs (a bit like .net's reflection.emit and MethodBuilder)? 20:35
actually i probably should use eval. sorry 20:37
20:40 donaldh joined
bsdz hmm I don't think eval does what I want. I need a 'Sub' factory 20:42
particle partcl generates pir from pir, then runs it
bsdz particle: any examples in trunk i can look at 20:43
20:47 AndyA joined
jonathan bsdz: Look up compreg 20:48
bsdz thank jonathan - just getting there
jonathan bsdz: But essentially you generate PIR, feed it to the PIR compiler, which you can obtain through compreg
And it gives you back an Eval PMC 20:49
Say it's in $P0
$P0() runs the sub there and then
But $P1 = $P0[0] extracts the sub.
(And indexed access to all the other subs, if you eval'd many in your PIR.)
bsdz jonathan++ excellent. looking at examples in eval.tl
thanks 20:50
jonathan Welcome.
purl Heh, not likely around here you won't be. or
jonathan was playing with this stuff for Rakudo recently.
21:02 Whiteknight joined 21:22 Limbic_Region joined, Woody4286 joined
jonathan ($P0 :slurpy, $P1 :slurpy :named) = obj.name(pos_args :flat, name_args :flat :named) 21:53
.return ($P0 :flat, $P1 :flat :named)
WTF would the second line *ever* be able to fail with "argument doesn't array"?
(Given it immediately follows the first.) 21:54
21:59 Whiteknight joined 22:02 NordQ joined 22:04 NordQ joined
Tene_ pmichaud: you going to be able to look at the use/export discussion sometime today? 22:04
jonathan Tene_: How much do you need?
Tene_ jonathan: I thought we were pretty much in agreement on what needs to be done, and just wanted pm's comments if any, right? 22:06
jonathan Tene_: Yeah, I just upon needing certainly the auto-export of multis to work...
*hit upon 22:07
Tene_ oh, what do I need to work.
jonathan Yes. :-)
Tene_ I need 'use' to import symbols into my namespace from the ::EXPORT::ALL
I don't need tagsets or anything
jonathan OK
A first cut of that is probably easy. 22:08
particle you want ::EXPORT::DEFAULT
jonathan particle: I can't find anything that tells me what gets imported by a default use Module. 22:09
Is it :DEFAULT?
Which would make sense...
particle yes.
jonathan You'd have to write use Foo :ALL; to get all?
particle ALL is mainly for introspection, but you can use Foo :ALL
yep
Tene_ particle: 'is export' doesn't put things in ::DEFAULT
but yes, that would work too. 22:10
jonathan Tene_: I think what the spec says is that just because you write is export on something doens't mean that it's automatically imported.
Tene_ ah
right
Sure.
really, any kind of symbol import on 'use' is all I need 22:11
jonathan Actually we're meant to import into lexical scope rather than package too.
But that is going to be a pain until we fix lexicals over class boundaries.
particle right 22:12
for now, good enough is good enough.
jonathan So I'll cheat and do package.
gravity blanches at the -rpath stuff in the build system 22:46
jonathan Cheating worked. 22:47
Tene_: Got something that shoudl fly. 22:48
Tene_ nice
Thank you.
jonathan Tene_: Imports anything you mark :DEFAULT
Into the namespace you've written the use in. 22:49
Wrong wrong wrong but will get us by.
I'm going to do one more cheat.
Tene_ jonathan: and if I install stuff into Foo::EXPORT::DEFAULT at runtime when the module is loaded?
it just fetches from the namespace, yes?
jonathan erm.
I guess so, but I'm not sure if that's kosher by the spec...
Well 22:50
Actually, yes
Just work.
purl just work is the opposite of "doesn't work".
jonathan But really you just need to is export(:DEFAULT) whish is what I did.
Tene_ jonathan: what I need this for is generating subs at runtime, so I do need that. :) 22:51
jonathan Tene_: OK.
Tene_: Also, I am going to do something now to put multis in DEFAULT whether you mark them as that or not.
Since the spec says
Any proto declaration that is not declared "my" is exported by default.
Any multi that depends on an exported proto is also automatically exported.
When there is no proto for a multi, the autogenerated proto is assumed
to be exportable.
Tene_ nice 22:52
jonathan Which suggests to me :DEFAULT is the right place for it (as well as all)
jonathan feels like he's done something useful today now 22:56
Tene_ :)
22:56 ilia joined
Infinoid Default is the right place for everything, by default. :) 22:56
jonathan spend the afternoon too headachey to concentrate on much... :-| 22:57
Tene_ aw :(
jonathan Then felt kinda guilty, since it's one of my funded days...
Well, import makes up for it. :-)
ah, geck, I need to handle multi smarter... 22:58
OH NICE 23:01
Tene_ hm? 23:02
nopaste "jonathan" at 85.216.157.73 pasted "works" (17 lines) at nopaste.snit.ch/15933
Tene_ jonathan++
Great work. :) 23:03
jonathan Tene_: Doing spectest now. 23:04
Tene_ jonathan: try doing spectest with Test.pm in the Test package. ;) 23:05
jonathan Tene_: :-P
I'm not that daring. ;-)(
This will all need a fairly big review at some point, but having a first cut to work from is easier than a blank sheet. 23:06
Ah, damm, the multis bit doesn't quite work when the importing script is pre-compiled....can't immediately think why... 23:08
(It finds the imported one and blows away the one in the imported scirpt itself. Hmm.) 23:09
Tene_: Tests are looking good so far. So I think I can put this in. 23:16
Tene_ :)
I'll try to get to your .leave() stuff this weekend
jonathan Yay. 23:17
If you want to debug why it clobbers multis in the importing namespace only in the pre-compiled case, feel free too. 23:18
Don't have the energy for that tonight, I'm afraid.
Tene_: Ah. I broke the one test in import.t :-( 23:22
Tene_ heh 23:23
you going to fix it, or going to let me do that?
jonathan Also I don't understand what it's trying to do...
Tene_ I'm about to get off work.
jonathan Tene_: Think I may have found it. 23:30
Tene_: Yeah, got it squished. 23:32
Tene_ :)
jonathan Tene_: Pushed. 23:36
dalek kudo: ec0db22 | jnthn++ | src/builtins/guts.pir:
Work around multiple Parrot bugs for calls to foreign objects, and document what we're working around. (TODO: see if they already have tickets and submit them if not.)
23:39
kudo: e38edf9 | jnthn++ | src/ (3 files):
First cut of importing from :DEFAULT one use. Wrong and incomplete, but a start at least. Also, per S11 (or as far as I understand it), multis want to get :DEFAULT automatically, so add that.
Tene_ jonathan: is there a reason you're importing into the hll root namespace instead of looking up the namespace of the caller?
shorten dalek's url is at xrl.us/bek3ha
dalek's url is at xrl.us/bek3hc
Tene_ $P0 = getinterp; import_ns = $P0['namespace';1]
jonathan Tene_: There's actually three cases.
Tene_ listens
jonathan See also the actions.pm changes.
Basically, though, if we call from actions.pm we pass in the namespace to call into.
However, if we're in the global ns then that's an empty string. 23:40
Which is the case when instead of handing the name off to parse_name, we just grab the root hll namespace.
In the case that we weren't passed a namespace to import into, then we do lookup the caller's namespace.
Tene_ okay, the problem is that I can't read. 23:41
><
Thanks.
jonathan np :-)
Feel free to hack on this.
Also, to add/enable more spectests relating to it would be great too.
Also one thing I didn't work out yet
Is that in src/setting we have a bunch of .pm files now that we toss together and use to make gen_setting.pir 23:42
But we need to do importation from them too.
But I didn't yet work out how to do that...we may need to refactor what I just added (as in, factor out the import logic to something called by use).
Ah, or we need to import whether module was previously loaded or not. 23:43
Ah.
But that means we need to fake some stuff into %INC for the built-in modules.
Tene_ I'm spectesting with Test.pm in the Test package.
jonathan Hopefully you get what I mean - sorry, that wasn't coherent.
Tene_ I get it.
jonathan Well, yeah, but the issue for, say, IO, is that we don't use it. 23:44
But we still want to import its stuff.
Tene_ nodnod
Do you have objections of moving Test.pm into the Test package, if tests are passing? 23:45
23:45 allison joined
jonathan Tene_: No, I'd get a second opinion from pmichaud though. 23:46
Or just take the forgiveness/permission rule. ;-)
Tene_ That's my favorite rule! 23:47
Hmm. 23:48
oh...
I need to mark them all as export(:DEFAULT)
most of them were :DEFAUKT anyway because they're multi. :)
jonathan I guess it'll be a test of the code. ;-)
23:56 contingencyplan joined