Parrot 1.1.0 Released | parrot.org/ | 332 RTs left
Set by moderator on 26 April 2009.
edd and living in... 00:00
PLATFORMS says no-one has reported this to work on OpenBSD..yay 00:01
darbelo edd: What doesn't work on OpenBSD? 00:02
edd i dunno yet :p
im looking for build instructions
no autogrunk... refreshing :p
darbelo I'm runnig svn HEAD on OpenBSD without any trouble. 00:03
rg oh look. smolder is back. openbsd is just fine: smolder.plusthree.com/app/public_pr...ails/20447
shorten rg's url is at xrl.us/beqmz8
cotto OpenBSD was failing one test until recently, but darbelo submitted a fix for it. Other than that it seems to work fine. 00:04
rg darbelo++ # thanks for that
edd darbelo: do i know you from the OpenBSD community?
darbelo Not likely. I avoid misc@ like the *****ing plague. 00:05
edd its erm... yes amusing
i had to ask, as its a small world in openbsd 00:06
darbelo: anyway hi, im "the TeX guy" as i get called 00:07
nice to meet you all
but the build does somewhat fail 00:08
pastebin.com/m3629f541
darbelo what version of parrot are you building?
rg and on what version of openbsd 00:09
00:09 AndyA joined
darbelo That error only happens on post 4.4 systems, so he's running 4.5 or -current 00:09
edd -current natrually 00:10
:p
darbelo I submitted a patch for it, he might have a parrot from before it went into the tree.
edd 1.0.0 00:11
shall i svn?
darbelo IIRC the pach aplied cleanly on 1.0, it's fairly trivial.
edd i dont mind running svn if it works 00:12
Whiteknight edd, svn is definitely the best route
rg it should be in 1.1
i believe this is the commit: trac.parrot.org/parrot/changeset/38215
darbelo Yep. That one. 00:13
Nut svn is the better route, since at least one OpenBSD test failure got fixed in the meantime. 00:15
Whiteknight I think it's safe to assume that most users of OpenBSD should be competent with svn 00:17
Infinoid Actually, I've been hoping to get more testing on openbsd 00:28
So, does it work? :)
The pkgsrc maintainer submitted quite a few fixes, most of them went into the 1.1 release but I think they're all in current svn. 00:29
darbelo Infinoid: Yes it works. You can ping me if it doesn't.
rg infinoid: it seems with darbelo and mikehh and now edd, we'll have more openbsd testers than freebsd ;)
Infinoid Thanks. I wouldn't mind adding evidence of that to the PLATFORMS file, if you care to provide a patch
edd pkgsrc = netbsd
ok ill tr ysvn 00:30
Infinoid Yeah, but many of the bugs he patched were also reported on openbsd.
I recall at least 3 overlapping tickets
edd parrot is not actually in openbsd yet
if it works at next realease I can get it in
darbelo Infinoid: I was talking about svn. 00:31
Infinoid I think the netbsd pkgsrc is still applying patches to 1.0.0... but my goal is to make svn work perfectly :)
edd the bsds hate porting hand rolled svn releases 00:32
as we have to host the tarball ourselves
Infinoid understandable. But if svn works, 1.2.0 will be more likely to work as well
edd aye indeed 00:33
i will certainly let you know what happens
Infinoid edd++ 00:34
darbelo Also. Whats the policy on passign TODO-ed tests?
cotto darbelo, it depends on the test 00:35
some of them are feature-specific, others are platform issues. 00:36
rg darbelo: i would suggest to open a ticket with a patch to remove the todo and ask for testers
darbelo In particular: some recent changes in libc made some TODOed tests start passing. Thing is: older version of OpenBSD will still fail.
Infinoid yeah, those are tricky. we can do platform-specific skips/todos tho 00:37
rg infinoid: i think platform-version specific is quite tricky 00:38
darbelo Can we detect OpenBSD <= 4.4?
Infinoid rg: Yeah. Often easier to just fix the code to pass the test :) 00:40
cotto darbelo, is there anything in config_lib.pasm that gives us enough information?
darbelo I'll check. 00:41
cotto I suspect there won't be, but it's worth looking. 00:42
Infinoid is it worth putting code in the os-specific hints file to detect the os version? 00:43
for linux, at least, I suspect the versions of gcc and glibc are more relevant than the kernel version 00:44
darbelo on *BSD you can get the version of the entire OS with uname. 00:45
rg for linux you have to detect the subsystem that actually has the fix that is making your tests pass. on *bsd you get all in one. 00:46
Infinoid here that gives you the kernel version, but the userspace is completely detached from that
yeah.
unless you want to go distro-specific, which... no.
Hmm, it's been a while since I've testd parrot on dragonfly, I ought to get that going again. 00:48
darbelo Gave config_lib.pasm a once-over. Nothing ovbious there. I'll go eat something, and check again later. 00:51
01:02 eternaleye joined
edd build works 01:09
running regress tests
Coke dduncan: catching up, but stable releases will still go on CPAN. 01:12
so 1.4 is the next one to expect. 01:13
01:19 LylePerl joined
edd All tests successful (1 subtest UNEXPECTEDLY SUCCEEDED), 16 tests and 572 subtests skipped. 01:43
dduncan so that's how it is
Infinoid edd: Great. would you mind giving us a line we can put into PLATFORMS? 01:51
dalek rrot: r38380 | pmichaud++ | trunk (2 files):
r38381 | pmichaud++ | trunk/DEPRECATED.pod:
01:53
01:53 dalek joined
rg dalek really doesn't like the ellipsis character that trac is handing it 01:55
edd Infinoid: what about the unexpected pass
rg edd: probably the one that darbelo mentioned
edd i have no idea what all the stuff is in platfroms 01:56
i do know it doesnt fit in an 80 wide terminal
:p
Infinoid well, it's one line per tested target platform
rg actually it does. 80 chars precisely. 01:57
Infinoid the openbsd flags are probably pretty similar to netbsd's... there is a legend below the tables
rg infinoid: do you have a log why dalek crashed? 01:58
rg hey! why didn't this one get converted? 02:00
edd rg: it should wrap at <78 02:01
rg edd: not my call and i guess opinions differ on that.
edd aye
Infinoid rg: I have a daemontools log. The bot is run with 2>&1, so stderr and stdout are mixed in a weird way 02:03
I have some wide character warnings, and some PRIVMSG debug lines with some unicode (pmichaud's commit message), but no actual error message 02:04
rg something in the wide/unicode character must be killing it
Infinoid Yeah, it must be judging from the timing of its quits... but I can't reproduce it here with the same code (running under a test wrapper) on the same rev of perl 02:07
rg neither could i.
pmichaud something else must be putting unicode in the messages, as I don't think I did it.
rg pmichaud: trac is converting some ... into an ellipsis character
Infinoid yeah, trac must be collapsing it. 02:08
rg it is. you can tell if you're trying to select the text on the timeline page. 02:09
it's not even consequent about it. it doesn't do it on the changeset page 02:10
Infinoid right. I think it's time for me to write a testsuite for this mess of rss parsers
dalek rrot: r38382 | pmichaud++ | trunk (2 files):
[p6object]: Update stringification of protoobjects (TT #168).
02:15
rrot: r38383 | chromatic++ | trunk/src/hash.c:
[src] Added a minor optimization to parrot_hash_get_bucket() to avoid some

somewhere between four and eight entries in the hash.
rrot: r38384 | jkeenan++ | trunk/docs/pdds/draft/pdd30_install.pod:
Correct POD formatting for '<' and '>' inside other POD strings.
02:43
02:48 janus joined 03:23 gaurav joined 04:02 tetragon joined 04:34 jhorwitz joined 04:45 japhb joined 05:10 flh joined
dalek rrot: r38385 | pmichaud++ | trunk/runtime/parrot/library/P6object.pir:
[p6object]: Differentiate a NameSpace object from the NameSpace protoobject.
05:52
cotto pmichaud, ping 06:06
06:11 uniejo joined
dalek rrot: r38386 | Infinoid++ | trunk/PLATFORMS:
I just tested parrot successfully on dragonfly bsd; add it to PLATFORMS.
06:20
06:28 iblechbot joined 06:36 amoc joined
pmichaud cotto: pong 06:42
06:48 dalek joined 06:50 amoc joined
pmichaud time for sleep here... be back in a few hours 06:51
cotto d'oh 06:56
moritz maybe a mail would be easier? 06:58
cotto pmichaud, whenever you get back, what's a good approach to optimizing a PGE grammar? I'm thinking about the pmc compiler in branches/pmc_pct specifically, but a general approach would also be nice.
moritz, I like to inconvenience people (including myself) with synchronous communication.
moritz ;-) 06:59
cotto (which translates to "you're probably right")
moritz argh, I forgot a {*} again
07:17 masak joined, Fayland_logger joined 07:24 dduncan left 08:11 HG` joined 08:16 riffraff joined
dalek rrot: r38387 | chromatic++ | trunk/t/pmc/key.t:
[t] Removed a TODO test marker for which a test exists and passes.
08:18
08:43 bacek joined 08:45 amoc joined
dalek rrot: r38388 | chromatic++ | trunk/src/pmc/hash.pmc:
[PMC] Optimized keyed lookup slightly. Hash get, exists, and delete operations

operations do store the Key STRING, so they need COW STRINGs (RT #60128). The Hash PMC has a new static function to make a read-only STRING from a Key. This optimization improves PGE performance by around 3.5%, in my rough benchmarks.
08:50
09:38 amoc joined
cotto coke, ping 09:39
09:45 amoc joined 09:53 amoc joined, FL2 joined
cotto Coke_zzz, unping 09:53
bacek good evening, people of past 09:59
cotto: any thought about DOTPLAN in pmc_pct? 10:00
10:00 pancake joined
dalek rrot: r38389 | bacek++ | branches/pmc_pct/compilers/nqp (3 files):
[nqp] Reimplement self as lexical. pmichaud++ for explanations
10:02
pancake =$*IN doesnt works in rakudo. is this the right place to talk abouit it? 10:05
bacek pancake: #perl6 at freenode
pancake: prefix:<=> was deprecated. Use .get 10:06
pancake ok 10:07
thanks
bacek no worries :)
cotto bacek, I toyed with trying to optimize the grammar, but I don't know PCT well enough to comment intelligently on the plan. 10:08
pancake why =$*IN was deprecated?
$*IN.get() is looong :)
bacek pancake: Some conceptual issues. Ask TimToady at #perl6 :)
pancake hehe, ok i can imagine which them 10:09
szabgab.com/talks/perl6/perl6-given.html this tuto should be updated then
szabgab pancake, I am working on it
bacek definitely. prefix:<=> was deprecated ~week ago 10:10
pancake szabgab: wow :) fast response! great
bacek welcome to 21st century :)
dalek rrot: r38390 | jonathan++ | trunk/config/init/hints/mswin32.pm:
[config] Bump up memory older versions of MS VC++ are allowed to use, in order to keep Rakudo compiling.
10:11
cotto bacek, did you ask pmichaud about optimizing at all? 10:13
szabgab pancake, actually probably you'll want to use prompt()
pancake $fh.readline is also deprecated? 10:15
cotto msg coke It looks like partcl will also need to be updated to use the 'hll_map' method before it'll work with svn head. 10:16
purl Message for coke stored.
szabgab pancake, nope 10:20
that should work, just for stdin you probably want prompt
but probably better switch to #perl6
bacek cotto: not yet. 10:22
cotto: I don't quite care about speed at this point of time... Make it is first target. 10:23
cotto: but from my observations back-tracking takes a lot of time :-/ 10:24
cotto: it was main reason to throw few :: in grammar
cotto I wish we had some pir profiling tools. 10:29
which doesn't really accomplish much
msg coke What do I need to run partcl? I got it to build with r37500, but it complains about not being able to find languages/tcl/runtime/tcllib.pbc when I try to run a hello world. 10:41
purl Message for coke stored.
cotto time for sleep
10:44 kid51 joined 10:45 frodwith joined 11:06 amoc joined 11:20 dalek joined 11:24 cognominal joined 11:45 amoc joined 11:49 ruoso joined 11:56 amoc joined
Coke cotto; I'm back. 11:59
msg cotto tcl /doesn't/ run. allison has done some legwork on finding things (this being one of them) - fixing them as I get to them. =-) 12:00
purl Message for cotto stored.
Coke sees someone refer to pm as Dr. Michaud and will henceforth call pmichaud "Doc" in his internal monologue. 12:04
msg cotto we only use .hll_map in one place; should be an easy fix. 12:06
purl Message for cotto stored.
12:09 rdice joined
dalek rtcl: r332 | wcoleda++ | trunk/runtime/tcllib.pir:
.HLL_map was removed
12:20
Coke msg cotto code.google.com/p/partcl/source/detail?r=332 12:21
purl Message for cotto stored.
12:38 amoc joined, rg1 joined 12:39 iblechbot joined 12:45 amoc joined
Coke wonders how rakudo is getting 'ldflags' to build its pmcs. 12:45
ah. because you're still using the deprecated (but apparently functional) perl scripts, while I'm using the recommended (and broken) makefile. 12:47
Coke sighs.
Coke leaves partcl to rot for a while longer.
13:00 sjn joined 13:10 gryphon joined 13:12 amoc joined
edd moin 13:14
13:19 amoc joined
Infinoid good morning 13:31
Coke NO IT ISNT! 13:36
ahem.
rg when is it ever ;P 13:37
Infinoid $dayofweek ne 'Monday' is a good start for me 13:39
14:25 register joined
Coke wonders if he can easily inspect what's getting sent to smolder before ... smolding. 14:42
14:44 Infinoid joined
rg run $(PERL) t/harness $(EXTRA_TEST_ARGS) --core-tests --archive (i.e. without --send-to-smolder) and look at parrot_test_run.tar.gz 14:44
r
EXTRA_TEST_ARGS = --gc-debug --running-make-test 14:45
btw if the one running smolder is reading: i'm getting a 500 server error response when submitting reports, although they seem to be transmitted just fine. 14:46
Coke that's mpeters, he's not usually here. 14:51
can't hurt to open a ticket.
rg in trac? i doubt that'll make a difference
Coke that's where issues about our use of smolder go, yes. 15:00
15:00 Eevee joined
particle- you can copy mpeters, if you think it'll help 15:06
mpeters@plusthree.com 15:07
15:11 HG` joined
Coke mpeters? 15:19
mpeters is mpeters@plusthree.com
15:43 darbelo joined 15:47 pjcj joined
Tene Is there a 'Bruce Keeler' in the channel? 15:55
15:57 AkRa joined
AkRa Hi, guys 15:57
Infinoid hi, AkRa
AkRa I'm from Alicante, Spain 15:58
15:58 edd_ joined
AkRa I'm just preparing a lecture on Parrot for tomorrow morning. 15:59
It will focus mainly on PIR
Tene Hi, AkRa! 16:00
16:00 flh joined
AkRa Most of the material is here: pelele.pbworks.com/Procesamiento%20...%C3%A1mico 16:00
shorten AkRa's url is at xrl.us/beqpdm
AkRa I'm afraid it is in spanish only 16:01
just to let you know Parrot will be presented in another university course 16:02
Any suggestions for a one session lecture on Parrot will be welcome 16:03
moritz PCT might be a good topic 16:04
building a compiler in one hour, or so
Tene That's my traditional 1-hour presentation. 16:05
16:06 Theory joined
moritz so the advice should be "steal from Tene" :-) 16:06
Tene Sure.
www.opensourcetv.tv/video/15.html is video of one of them
I'll try to record my presentation this weekend, too.
AkRa Yeah, that's fine! 16:07
Tene I plan to end with adding support to mod_parrot, if I have time.
pmichaud here's mine: pmichaud.com/2009/pres/npw-pct/
(slides only for now)
AkRa Thanks, a lot, Tene, pmichaud ! 16:09
Tene AkRa: please let me know if there's anything else I can do to help with your presentation.
AkRa I think I should had to stop by here one week ago :) 16:10
pmichaud I'm not sure that it's valid to prepare presentations more than 24 hours in advance. :-P 16:11
AkRa :D
Just a thing: It's 'Polymorphic Container' the new 'official' name for PMC? 16:12
I just don't find 'Parrot Magic Cookie' anymore on the doc 16:13
Coke Allison retro-named it, yes.
AkRa Ok 16:14
darbelo I liked the old name better :) 16:15
moritz too
16:15 gaurav joined 16:16 braceta joined
Infinoid mmm, cookies 16:16
AkRa Tene, pmichaud : Can I link to your urls from my Parrot page? 16:18
pmichaud AkRa: definitely.
Tene AkRa: Yes.
AkRa Thanks, they will be of great help! 16:19
pmichaud #parrotsketch in 130 16:21
afk, lunch 16:22
Infinoid You know, I really like having a weekly #ps. It makes me constantly ask myself "what have I done for Parrot lately?"
16:27 whoppix joined
NotFound I think the official name for PMC is 'PMC' ;) 16:32
AkRa there is no confusion, there ;)
NotFound Em, is also called Parrot_PMC from embed 16:33
AkRa Thanks a lot, everybody. Have a nice day! 16:35
NotFound AkRa: I'm from Spain, too
AkRa Nice! are you involved in Parrot development? 16:37
NotFound AkRa: yes, since last summer
16:38 ilia joined
AkRa Wow, so may be I can bother you with some naive questions about it in the following days, should I? 16:39
NotFound AkRa: a tip: use say instead of print in the examples.
AkRa: sure!
AkRa Ah, ok
In fact, the presentation was done last year, I must update it a little 16:40
See you! 16:58
16:58 AkRa left
moritz Infinoid: it seems that dalek on #perl6 has stopped reporting, again 16:59
Infinoid: I've killed its process on feather a few times in the past two days, and it respawned, but it doesn't seem to last long
Infinoid Yeah, it hasn't reported any rakudo commits in here since the 22nd 17:00
wish I knew what changed.
I have a wrapper script that I've been testing the feed parsers with, but it really needs a full testsuite 17:01
Been meaning to add one, but finding a new job takes priority
moritz sure 17:04
Coke you know cold fusion? =-)
moritz if I knew, I'd be eligible for the Nobel Prize ;-) 17:05
17:08 Andy joined 17:14 seyedx joined 17:16 braceta left
jonathan parrotsketch is now or in one hour? 17:31
Util 1 hour
jonathan ok, thanks
17:40 chromatic joined
Coke chromatic: hey, c. 17:44
chromatic morning 17:48
17:55 jan joined
Infinoid chromatic: A blog post of yours from a few days ago made me itch to check out MooseX::Declare, but I ended up getting bogged down reading a bunch of Moose documentation to figure out simple things (like where to put the field initializer logic I'd normally put in new()). 17:58
It's great stuff, but it is deceptively simple. For people like me who are not yet familiar with Moose, there are some pretty deep potholes. :)
Coke Infinoid: rolsky just wrote a bunch of docs.
chromatic It could use a book....
Coke I would imagine rolsky would be a good person for that.
Coke assigns a partcl ticket to cotto.
Infinoid The syntactic changes are great. The semantic changes are taking me a little longer to figure out. 18:01
18:14 barney joined
pmichaud time for #ps ? 18:33
Util yes
18:42 allison joined, chromatic joined, seyedx joined, Andy joined, ilia joined, Theory joined, darbelo joined, Eevee joined, Infinoid joined, gryphon joined, rdice joined, ruoso joined, cognominal joined, frodwith joined, FL2 joined, bacek joined, japhb joined, jhorwitz joined, particle- joined, contingencyplan joined, Coke joined, jsut joined, zostay_ joined, samlh joined, Ademan joined, szabgab joined, s1n joined, cheflog__ joined, particle2 joined, TonyC joined, nopaste joined, rblackwe joined, silug joined, estrabd joined, rhr joined, TimToady joined, cotto joined, Khisanth joined, Tene joined, buildbot joined, purl joined, Aisling joined, mmpf joined, lucs_ joined, tewk_ joined, dngor joined, confound joined, workbench joined, ingy joined, cxreg joined, spinclad joined
Coke allison: compiling if you keep the build dir around is "not compiling". =-) 18:45
chromatic Baby Steps!
purl i heard baby steps was getting the test reforms done. I'm starting to have fun, even.
chromatic YOU COULD START TO HAVE FUN TOO, even.
Coke the hll map stuff is gone.
chromatic: I highly doubt that.
Infinoid chromatic: Oh, wow. irclog.perlgeek.de/parrotsketch/today doesn't have any of our reports from before the split 18:46
allison Coke: right, but those are problems with Parrot, not with Partcl
chromatic Tcl does set an upper bounds on the fun you can have.
Infinoid Not even my "hi!"
Coke allison: ... yes, it's parrot's fault. I completely agree. =-)
allison Coke: and, I know how to fix them 18:47
Infinoid pmichaud: I have an IRC log of the other side, I can paste after #ps is over
pmichaud Infinoid: well, it's harder for me to comment on what others said if I can't read it :-( 18:48
Infinoid pmichaud: ah. one sec, I'll throw it on the web
pmichaud Infinoid++
Infinoid pmichaud: quack.glines.org/upload/infinoid/log.txt 18:49
allison Util: I'm already building the parrot book to a PDF. I can set you up with access to my build infrastructure if you'd like.
Util: oh, but yes, it can't be a 'make' target because it has too many external dependencies 18:50
Coke allison: if it depends on external tools, that doesn't really matter. 18:51
it's ok if "make book" fails with a missing dep.
(and if you check in something with failures, someone can downgrade them to a nice error message.) 18:53
18:53 schmalbe joined
Infinoid pmichaud++ # congratulations on the release and the huge number of passing tests! 18:53
allison okay. It needs Pod::Simple (a recent version, not the ancient one checked into Parrot), Pod::PseudoPod, Pod::PseudoPod::LaTeX, and a latex-to-pdf converter, something like 'pdflatex' 18:54
chromatic Probably a patched P::PP::L too. 18:55
Coke (ancient one) why don't we upgrade?
if we're going to have any copy at all.
allison oh, yes, I'm using an extensively patched version of P::PP:L 19:00
Coke: because we're planning to remove the dependency (not keep one checked in) 19:01
Util I had to patch my P::PP:L to get as far as LaTeX output.
cotto Coke, against which revision of Parrot do you think it'll be easiest to get partcl to build?
allison Coke: but, upgrading to the new version is what's holding us back from that
cotto: it builds against 1.0
Coke ... "sort of", yes. 19:02
allison cotto: would be nice to do 1.1, but it still uses .HLL_map
cotto s/build/run hello world/
Coke allison: no, it doesn't.
cotto sorry, thinko
allison Coke: oh, did you remove .HLL_map? great!
Util allison: do you have some "include"ing wrapper that is not checked in? I did not see where anything merged the chapters into a single book PDF. 19:04
chromatic I don't think we ever automated that. 19:05
allison Util: nothing is checked in here, it's in the Onyx Neon repository
with build scripts, the patched versions of the modules, etc
19:07 cognominal joined
Util Any reason not to move the build scripts (at least building to PDF, maybe not to the O.N. make-a-real-book format) into Parrot repo, and module patches into the CPAN modules? I could provide the manpower, if that is the only holdup. 19:11
Allowing anyone (who has the externals installed) to build the PDF at anytime seems like a Good Thing to me. Always good to be able to edit while reading final-form.
chromatic No objection here, save that it has external deps. 19:12
dalek tracwiki: v66 | chromatic++ | WikiStart 19:13
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
shorten dalek's url is at xrl.us/beqqd7
allison Util: I can send you the scripts and the modified version of P::PP::L 19:14
Util allison: thanks! 19:15
moderator Parrot 1.1.0 Released | parrot.org/ | 332 RTs left | Weekly Priority: Remove Deprecated Items 19:16
dalek tracwiki: v10 | coke++ | Parrot%20Virtual%20Machine%20Workshop%202009 19:16
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/beqqej
Coke particle-: I made it more true. :( 19:17
hurm. the 1.1 roadmap query is showing #236, which is now on 1.4 milestone. 19:35
That's... wrong. wonder if it's my cache...
nopaste "tene" at 97.117.72.236 pasted "working HLL P6Object for jonathan++" (21 lines) at nopaste.snit.ch/16424 19:39
dalek rrot: r38391 | pmichaud++ | trunk/DEPRECATED.pod:
Close out TT #168 (stringification of protoobjects) in DEPRECATED.pod .
19:40
nopaste "tene" at 97.117.72.236 pasted "parrot trace for jonathan++" (6 lines) at nopaste.snit.ch/16425 19:42
jhorwitz Tene: what's your mod_perl6 problem? 19:44
Coke perl6: is there a way to do "${_}literal" ? 20:03
pmichaud Coke: {$_}literal 20:04
Coke danke. 20:05
cotto pmichaud, do you have any recommendations for optimizing a grammar? 20:06
Coke cotto: first, profile it! =-)
cotto Coke, no. First, write a profiler.
;)
pmichaud cotto: I'd have to see a few more grammars. Try to structure it to avoid false leads as much as possible 20:07
Coke step one: learn c.
Tene jhorwitz: segfault on load
iirc 20:08
erm, on loadimmediate
jhorwitz Tene: after the latest fix?
Tene jhorwitz: yes, still there
lessee if I can get a bt for you
jhorwitz is filled with segfault rage
Tene also, perl6.pir should probably load_language 'perl6'
instead of load_bytecode on a path 20:09
jhorwitz good catch -- the code hasn't been touched since load_language appeared.
Tene BUT, there are issues with search paths for the libraries that rakudo tries to load, iirc 20:10
jhorwitz Parrot*Path and PERL6LIB should take care or that. 20:11
s/or/of
20:12 barney joined
Tene yeah 20:13
I remember seeing something weird happen with it anyway 20:14
jhorwitz: I lied. It's "Can't find Perl6MultiSub", which I think is a Parrot*Path issue. 20:25
jhorwitz yeah, make sure your dynpath is right
Tene will check later 20:28
supposed to be working right now. ;) 20:29
jhorwitz i saw nothing....
dalek tracwiki: v149 | allison++ | ParrotRoadmap 20:40
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/beqqu5
Coke pmichaud: is PGE LTM a roadmap item, or just a big todo? 20:47
pmichaud we had it on the roadmap because I somewhat think it may affect how language authors write their grammars. 20:48
also, I thought I'd be farther along on it by now.
it wouldn't bother me to take it off the roadmap and just leave it as todo 20:49
(it'll get done in the same amount of time either way)
Coke what about protoregex. same thing?
pmichaud yes.
Coke ok. 20:50
dalek tracwiki: v150 | coke++ | ParrotRoadmap
Tene I think they'll both help cardinal's grammar quite a bit
dalek tracwiki: add link to existing rt
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/beqqwz
pmichaud oh, they'll help all the grammars quite a bit.
They'll help my bank account, too.
Tene :)
pmichaud so, there is more than the usual incentive to complete them in a timely manner :-)
dalek tracwiki: v151 | coke++ | ParrotRoadmap 20:53
tracwiki: these were more "big todo" rather than roadmap-y.
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
shorten dalek's url is at xrl.us/beqqxd
allison Oh, I just created trac.parrot.org/parrot/ticket/589, should I delete it? 20:58
(for PGE LTM)
Coke allison: already fixed. 20:59
I split that ticket into 2, and referenced the RT ticket for the one that had one. 21:00
nopaste "tene" at 97.117.72.236 pasted "rakudo trace for jonathan++" (6 lines) at nopaste.snit.ch/16426
allison Coke: thanks! 21:01
Coke anyone have openbsd? 21:02
hurm. nevermind, ticket's very old.
nopaste "jonathan" at 85.216.157.73 pasted "Tene - even something this simple fails for me" (9 lines) at nopaste.snit.ch/16428 21:10
dalek tracwiki: v67 | allison++ | WikiStart 21:21
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
shorten dalek's url is at xrl.us/beqq3w
21:44 Whiteknight joined
chromatic Prediction: Rakudo passes 15k tests before #19. 21:45
Whiteknight seconds that prediction 21:46
particle- 3mo? 21:49
somebody better start writing some tests.
Infinoid Is a PIR "select" op (or method or whatever) on the roadmap? 21:51
allison selecting what?
Infinoid non-blocking I/O.
pir and rakudo have sockets now, but I'm not a big fan of writing network code without some form of select or poll
allison Infinoid: it's not in the PDD 21:52
also not in the existing API
Infinoid Is there something I can do to help solve that? 21:53
Or is there another suggestion on how to write servers with lots of connections?
allison write a patch, first to the PDD, and then once the group has had a chance to look it over, to the C API or PMC
everything for Sockets is methods on the Socket PMC, rather than opcodes 21:54
particle- if the patch includes tests, all the better :)
Infinoid what's your opinion of a Select PMC along the same lines? 21:57
Whiteknight what would the Select PMC do? 21:58
PerlJam Whiteknight: work for all IO and not just sockets? :) 21:59
Whiteknight oh, so like a multiplexer? 22:00
i get it now
Infinoid rather, it would be the PIR equivalent of an IO::Select object
Whiteknight basically a thin opaque wrapper around another IO object? 22:01
Infinoid no, it's a List of IO objects
you add a bunch of IO objects to a Select object and call select() on it, it will tell you which ones have data for you to read(), which ones have exceptions that need to be dealt with, and so forht. 22:02
forth
Whiteknight ah, okay. much clearer
Infinoid this lets you implement IRC servers and web servers (http 1.1 keepalive) and imap servers and such, with lots of idle clients and the occasional piece of data coming in
the default blocking I/O means read() won't return until it has actually gotten some data. You can't implement a server with blocking I/O, because you can't predict which IO handle to read from next. 22:03
rather, read() won't return until it has filled the buffer (you pass the size as an argument), which makes things even less predictable. 22:04
Whiteknight well we need to put together a proper asynchronous IO system anyway, a Select PMC won't negate that need
Infinoid by asynchronous IO, do you mean AIO-style callbacks?
Whiteknight yes 22:05
Infinoid That sounds awesome too. Completely different API tho
22:14 bacek_ joined
Infinoid allison: (re TT #593) Is there a single "recommended" way to wrap a library? It seems like there's a lot of variety in how postgres, opengl, pcre, etc are wrapped 22:15
chromatic Those guidelines have yet to evolve. 22:16
allison aye, part of developing the seed libraries is figuring out what works well and what doesn't 22:18
async I/O is on the roadmap (in the PDD too)
Whiteknight I'm thinking the time is getting ripe to start laying groundwork for asynch IO soon. 22:19
it might be worthwhile coming up with a good step-by-step plan to make that happen
allison Whiteknight: go for it. It's on the roadmap for 2.0 (next January), but there's no reason it couldn't be prototyped much earlier 22:21
Infinoid detecting AIO support on the host system would probably be a good start. do we plan to emulate it where it isn't available?
Whiteknight Infinoid: That's probably preferrable in terms of performance, but in terms of development effort is probably the most expensive 22:22
But putting good configure probes in place now would be a good first step that wouldn't break anything else
bacek_ good morning
Infinoid yeah 22:23
hi bacek_
Whiteknight hello bacek
Infinoid I imagine emulating it would probably be pretty simple... it would still be IO, just not A
but it can come later
are there any non-POSIX AIOs out there? I've only used it on linux. 22:24
allison Hmmm... (trac.parrot.org/parrot/ticket/601) we already have pluggable runloops, so if anyone remembers why we added this item to the roadmap for 2.0, please annotate
AIO probably isn't sufficient for our needs 22:25
that is, async I/O on Parrot needs to fully integrate with the Parrot event system 22:26
Whiteknight that's definitely the way I was planning to go about it
Infinoid can imagine emulating AIO on top of select()... and can also imagine emulating select() on top of AIO 22:27
Whiteknight: Interesting project. Once I've read the PDD, I'll get back to you if I have some spare cycles for it
Whiteknight There are lots of cool projects that just appeared in trac 22:28
and apparently I'm in the hole for garbage-collectable contexts 22:29
I'm going to have a few questions about that coming up soon, I'm sure
22:29 kid51 joined
allison Whiteknight: your name was on the Roadmap wiki page, feel free to unown the ticket 22:29
Infinoid ooh, GCable contexts
Whiteknight no, I'm happy to have it
Infinoid tried and failed to do that once.
Whiteknight I had a toy prototype of a Context PMC floating around on my machine somewhere 22:30
allison there's another ticket for that one lying around, with a partial conversion to a Context PMC
particle- whiteknight: youd'd better anchor it somewhere
allison worth looking for it, I think it's in RT
chromatic Does that depend on the calling conventions refactor? 22:32
allison it can happen independently, but will be much simpler after the calling conventions refactor 22:33
Infinoid RT #60564
chromatic Hm, pluggable runloops is pretty darn easy.
allison well, we already have them
chromatic A little refactoring of src/runcore/ would make them trivial.
Whiteknight is that like asking for "dynrunloop" libraries that could be loaded at runtime?
allison chromatic: I'm not sure what we intended to add, do you remember? 22:34
chromatic ... except for the difficult part of allowing users to select them.
Whiteknight yeah, that's the part that sounds the hardest
allison chromatic: select them at runtime?
chromatic I thought it was dynrunloops.
./parrot --runcore=foo bar.pbc
allison that sounds right, I'll add a note to the ticket 22:35
Whiteknight chromatic and allison: Did either of you two see RT # 38432
?
chromatic I saw it but had no particular insight. 22:36
cotto quick clarification: When a deprecation has a milestone listed, is that milestone the first release *after* which the deprecation can happen?
Whiteknight chromatic: I'm thinking that so long as we are refactoring the runloops and the calling conventions, we could just solve this problem one way or the other 22:37
cotto i.e. "eligible in 1.1" => milestone 1.0 ?
allison cotto: yes, eligible in 1.1 means the feature might not exist in the 1.1 release
chromatic The constructor exception problem or some other problem?
cotto allison, so the milestone should be 1.0? 22:38
allison chromatic: hmmm... actually, the runloop switch should be trivial, we're already doing it on the fly at runtime after Parrot has started
cotto: the milestone should be 1.1
cotto got it 22:39
allison cotto: it's work that we're doing to prepare for the 1.1 release
chromatic Switching runloops compiled into libparrot is trivial. Loading dynrunloops has other implications for installability, discoverability, enumerability, and security. 22:40
allison chromatic: ooof, I don't know that runloops as dynexts will ever work 22:41
chromatic: but it's worth prototyping
chromatic: it has some implications too. Could GC modules be dynexts? 22:42
chromatic Making them work is trivial. Loading them isn't entirely trivial.
allison chromatic: could large portions of the current "core" be dynexts?
chromatic I suppose parrot_config could include information about dynruncores.
I don't know about the rest of the core. Ops, perhaps, if the L1 scheme works out. 22:43
allison chromatic: I/O for example?
well, ops can already be dynexts
chromatic I meant "every op library we have now".
I suppose IO *could* be a dynext, but I don't see an easy way to do it like we have for runloops. 22:44
allison many of them already could be now (there's a deprecation item for that)
chromatic A runloop only has a few characteristics. It's easy to model that in a way which allows registry/unregistry.
allison the I/O system is already designed to be swapped out for different architectures 22:46
nopaste "jonathan" at 85.216.157.73 pasted "tene - this one works" (16 lines) at nopaste.snit.ch/16430
allison currently it's swapped at compile time, and each variant defines a set of standard macros
it's a fixed set of functions each variant provides 22:47
could just as well be a .so that provides a set of C functions
chromatic I suppose if the macros turned into invocations of function pointers registered in a struct or somehow, that's workable.
allison but then, I/O dynexts may not gain us anything, in terms of speed or extensibility 22:48
chromatic Not as much as runloops. 22:49
22:50 tetragon joined
allison I'm bumping "ordered destruction" out to 3.6, any objections? 22:53
chromatic I think people will want it before then, but no idea how to make it happen intelligently.
It depends on saner GC as well -- our constant pools are... complex. 22:54
allison indeed, I think it will be more possible after the GC tasks in 3.0
moderator Parrot 1.1.0 Released | parrot.org/ | 325 RTs left | Weekly Priority: Remove Deprecated Items 22:57
Whiteknight parrot-users++ 23:00
great idea for a new list
23:09 Woody4286 joined
Whiteknight allison: I have some questions about GCable contexts, if you've time 23:14
allison Whiteknight: sure, question away 23:16
23:16 clunker3 joined
Whiteknight 1) Is it worthwhile to maintain a distinction between Interp_Context and Parrot_Context structures? 23:17
I never found any use for the former except as a small overlay for the latter
allison aye, they should be merged into one PMC
Whiteknight okay, thanks 23:18
2) We do want this to be a PMC, and not just a "regular" structure that's PObj-isomorphic?
like a stack chunk or a STRING? 23:19
I ask because contexts are pretty complex, and the VTABLE interface is pretty limiting
we would end up needing to do a lot of direct ATTR accesses, which ruins encapsulation 23:20
allison Ideally, a PMC
Whiteknight ok
chromatic What does making it a PMC provide?
allison really ideally, the same PMC as the return continuation
Whiteknight allison: Ah, that's something I hadn't even considered
allison really really ideally, we collapse the context, the return continuation, and the "state" for an executing sub/method 23:21
also collapse the call signature object
Whiteknight okay, lots of possibilities that I hadn't even considered
allison chromatic: PMCs are a standard, GC able structure 23:22
Whiteknight collapsing in the call signature object is going to produce lots of good opportunities for simplification and optimization
allison Whiteknight: aye
collapsing all of them vastly reduces the amount of allocation we have to do for each call 23:23
chromatic: we could create another unique GC-able structure, but there isn't much benefit to it (PMCs are already pretty generic)
Whiteknight is awash in all the possibilities
allison chromatic: we do probably need a GC flag for "short-lived" PMCs, but we probably need that even if contexts aren't PMCs, so implement it once for all 23:25
chromatic Collapsing everything into one structure seems reasonable to me. 23:27
I don't buy the "PMCs are GCable, so everything GCable must be a PMC" argument.
But collapsing everything into one structure makes sense.
Whiteknight One thing I would like to do eventually is to get all the PMC_data structures allocated from the fixed-sized pools, instead of calling malloc for each one 23:33
because if we're malloc'ing data for every PMC allocation, we're not gaining any of the performance benefits of managing our own pools anyway
allison chromatic: and I don't see much point in adding a completely different structure and making it GC-able, but I'm happy to explore both paths 23:34
Whiteknight: that's certainly possible
chromatic If we never take advantage of the PMC parts, there's no advantage to it being a PMC. 23:38
Whiteknight chromatic: I think we will take advantage of some PMC parts. 23:47
pushing in arguments, and accessing them again using keyed lookups will be a very good feature 23:48
allison We certainly do take advantage of the PMC parts for call signatures
chromatic The combined version, yes.
allison and, if those are the only PMC features we use in the combined PMC, it's still valuable 23:49
23:50 starc joined
bacek_ quick question: are stuff eligible to remove in 1.4 can be removed in 1.2? 23:50
Whiteknight the new concurrency-friendly cps system is very intriguing to me 23:51