Parrot 2.3.0 Released | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: apply deprecations, merge branches, test exceptions_refactor branch | welcome our GSoC students
Set by moderator on 27 April 2010.
chromatic Without SVN. 00:00
allison If I had some way of predicting the future, it would be easy
(accurately, that is)
chromatic How about asking the Rakudo developers about their experiences? 00:02
allison can we at least say we'll put off thoughts of a move until after Rakudo Star and GSoC
chromatic No. 00:03
allison chromatic: from what I can see, they lost a lot of developers, then gained new ones
chromatic: but, I can't say whether that's all git, since there were other transitions going on at the time
bacek "lot of developers"? Can you name at least 2?
allison bacek: in the month after the move, I can only name 2 rakudo developers
bacek I can name at least 3 00:04
allison bacek: it's different now
bacek And before transition _out_ _of_ _parrot_ they had 3 as well.
allison bacek: a lot of us committed to Rakudo in Parrot 00:05
00:05 khairul joined
allison bacek: we kind of had to, since passing all Rakudo's tests was a requirement for branch merges 00:06
bacek: but, that's why I can't say git was the primary factor in the shift
bacek it's not related to git vs svn.
allison bacek: but, I also can't tease the two apart, since they happened at the same time
chromatic: possibly a more relevant example, has Perl 5 gained contributors from the move? 00:07
chromatic: that was the goal of getting off of perforce 00:08
chromatic moritz, Jonathan, Patrick, Andy Lester, Francois, Chris Dolan, Infinoid, masak, particle... all committers to Rakudo in the month after the move.
allison I don't see that it's helped
chromatic Perl 5 is special.
allison but then, again, there are more factors than just revision control there 00:09
but, moving away from perforce was an obvious choice 00:10
chromatic It made contributing to P5 tractable for me.
allison and git for Rakudo made sense for compatibility with Perl 5 00:11
chromatic That seems largely irrelevant.
allison hugely relevant, since the developer bases are drawn from the same pool 00:12
bacek Rakudo isn't compatible with Perl5
Blizkost is.
chromatic There's very little overlap between p5p and Rakudo.
bacek chromatic, is there any overlap at all??? 00:13
allison I'm talking about project culture, not implementations
chromatic Andy Lester, myself, sometimes the Nickclarkulator.
I don't know how to characterize Andy Dougherty.
Whiteknight fantastic
chromatic (in that I don't recall Rakudo-specific contributions from him)
allison chromatic: he's more of a parrot contributor than Rakudo, but is old-school p5p
chromatic I never had the impression that pm or jonathan cared about P5's use of git when choosing git. 00:14
allison most rakudo developers are perl developers on some level
(even if not core)
chromatic We can speculate a lot, but I think we'll get better information if we ask them straight out. "Was it worth moving to Git?"
allison but git users always speak glowing praise about git 00:15
and then complain about it on irc
chromatic Sic transit gloria softwarez.
allison (not necessarily always in the second part)
the biggest thing I don't want is to be saying "I told you so" in a year 00:17
because that seriously sucks
chromatic Agreed.
allison I get absolutely no satisfaction out of being right with a fucked project on my hands 00:18
00:26 Rugxulo joined
Rugxulo dumb question: is ParrotWin32 support to work "out of the box"? some examples do, some don't 00:28
allison does anyone want to volunteer to work with a handful of developers who aren't git-converts using a git-like process? 00:29
I'd value their thoughts highly
mikehh ffrom waht I can see at the moment - some of our most productive commiters are using git already
from what 00:30
allison (if Jim Keenan said he preferred git, that would mean a great deal to me)
mikehh: not sure, but I think those would fall in the "git-converts" category
mikehh I don't necessarily, but seeming bacek and chromatic do, plus others 00:31
chromatic I think kid51 and NotFound are git skeptics.
mikehh at the moment I am using svn, git and bzr, occaisionaly hg
allison call it a pilot project, if the skeptics got comfortable with it, I'd be more comfortable with a transition 00:32
mikehh I have issues with all of them but probably like bzr the best
allison mikehh: I'm quite fond of bzr
it's 1:30am here, going to get some sleep 00:33
mikehh moi aussi
cotto_work night 00:34
Rugxulo "parrot befunge.pir test.bef" doesn't seem to run until I comment out "rand $I0, 0, 4" in flow.pir ("error:imcc:syntax error, unexpected IREG, expecting '(' ('$I0')")
someone did mention to me how it was odd that Befunge has way less tests than the HQ9+ frontend 00:36
cotto_work It depends on people being willing to maintain the language and write tests.
Rugxulo maintainer for Befunge frontend is Jerome Quelin 00:37
and the guys and I on #esoteric@FreeNode could scrounge up a billion Befunge93 examples for ya
cotto_work If someone find it worthwhile to maintain that language, we can make it happen. 00:38
plobsing Rugxulo: what parrot version are you running? it works for me on a fairly recent trunk.
Rugxulo 2.3.0 00:39
cotto_work I don't think Jerome's been around for a while.
Rugxulo i386-MSWin32 (if you think that makes a difference)
plobsing It shouldn't (looks to me like the 'rand' op is being misparsed somehow) 00:40
cotto_work probably a dynop issue
Rugxulo neither example (pascserp.bef, test.bef) use it anyways :-/
catseye.tc/projects/bef.html 00:41
bacek Rugxulo, did you try "make installable_parrot; cd examples/pir/befunge; ../../../parrot setup.pir"?
Rugxulo (original creator of Befunge, has plenty of examples ... although like I said, we have our own over at #esoteric)
bacek bacek@icering:~/src/parrot/examples/pir/befunge$ ./befunge test.bef
If you can see a 4 here ->4 <- then everything is ok!
Rugxulo bacek, no
bacek It's on latest trunk. 00:42
(should be same on 2.3.0)
Rugxulo I just grabbed an already-made Win32 binary from SourceForge
I also don't have any MinGW installed here (and didn't think I needed it just to test Befunge, heh)
hence no Make available 00:43
bacek Interesting...
bacek@icering:~/src/parrot/examples/pir/befunge$ ../../../parrot befunge.pir test.bef
If you can see a 4 here ->4 <- then everything is ok!
It just works here. 00:44
Rugxulo it works here too if I comment out that one line with "rand"
of course, that probably means anything using '?' won't work
plobsing even worse, if that's not a special case (dosn't look to be), you can't use 'rand' anywhere 00:45
sorear Rugxulo: did you just get the parrot binary?
Rugxulo setup-parrot-2.3.0.exe 00:46
bacek Ah... Looks like installed parrot can't find dynops.
afk # shopping
Rugxulo hmmm, README has wrong (old) Cat's Eye URL, needs fixing 00:52
00:54 LoganLK joined
Rugxulo and just for completeness, most of my own personal Befunge examples work, but two have minor issues (negative numbers? something re: modulo?) 01:01
plobsing Rugxulo: patches, maintainers, and forks welcome 01:09
Rugxulo I thought fork wasn't suggested except as a last option ;-) 01:10
plobsing I meant fork the befunge example. 01:12
Rugxulo okay, horrible suggestion, could be wrong, but I think maths.pir (line 72) should say "cmod" instead of plain "mod", fixes one silly example of mine 01:28
(reference implementation of Befunge-93 interpreter is in C, so using C's mod should be correct)
01:32 bubaflub joined 01:33 Mokurai joined
Rugxulo another suggestion: "if $S1 == '-' goto _IO__INPUT_CONCAT" in io.pir (line 86), I think it doesn't input negative numbers correctly otherwise 01:46
&2*.@ 01:47
enter a number, multiply by 2, print it out, quit
(that's the dumb example Befunge program I used to test it)
works in other Befunge interpreters, including official, but not befunge.pir until above-mentioned hack 01:48
sorear I wonder why befunge still takes up space in the Parrot repo
when more important stuff like NQP have been moved out
Whiteknight sorear: because nobody has bothered to move it elsewhere
befunge isn't in the parrot core repo, is it?
And NQP moved elsewhere for a variety of reasons. The team for that decided they wanted to develop it separately from Parrot's policies and processes 01:49
Rugxulo sorear, it's not exactly taking up tons of space
gah, actually some interpreters handle it differently (FBBI) but official BEF is okay 01:51
01:52 JimmyZ joined
Rugxulo is confused how -5 * 2 = 10 to some interpreters 01:53
number input bug I guess 01:57
01:59 Psyche^ joined
Rugxulo is rand a built-in opcode or something else? 02:02
sorear no 02:03
it's a non-built-in opcode
the parrot virtual machine can load new opcodes at runtime from dynop libraries
Rugxulo libparrot.dll ? 02:04
sorear it's probably called math.dll or something like that 02:05
/usr/local/lib/parrot/2.3.0-devel/dynext/math_ops.so here
Rugxulo I see it
I did install Parrot correctly, but I didn't install anything else, so not sure why it isn't working 02:06
hmmm, if I copy math_ops.dll to the current dir, it works 02:07
sorear there are some oddities with path search on windows 02:09
I don't really understand it, but blizkost has cargo cult code to copy libparrot.dll into various random places 02:10
Rugxulo cargo cult? 02:26
purl cargo cult is programming by putting together bits of code the programmer doesn't really understand. See: en.wikipedia.org/wiki/Cargo_cult_programming
Rugxulo the PATH contains "c:\\blah\\parrot\\bin" 02:28
maybe this is horribly naive of me, but doesn't argv[0] work???
get parrot.exe's home dir, append "lib\\parrot\\dynext\\" and look for stuff there ... I guess it already does something like that, just doesn't work :-/ 02:29
bah, just static link it ;-)
it's not like the end-user is going to update it individually anyways
and it's very very small (21k) 02:30
math_ops.dll, I mean
chromatic sorear, your summary of the question I wanted to pose to Rakudo developers has very little in common with my logs of the discussion here. Would you mind ever so much dialing back the slander please? 02:35
Rugxulo well, hope that brief attempt at Befunge testing helped you guys a bit 02:39
chromatic Rugxulo, where did you find the Parrot package you're using?
Rugxulo sourceforge.net/projects/parrotwin32/ 02:42
sorear If I had realized it was going to be taken as a summary I would have been much more careful. Sorry. 02:45
chromatic I think fperrad maintains those packages. Hopefully he has an idea how to fix it. 02:46
sorear I tried to make it ridiculous to prevent people from thinking it was an unbiased summary
chromatic This is IRC, where satire doesn't work.
02:48 janus joined
sorear Ah. 02:48
02:51 Rugxulo left
Whiteknight neither sarcasm nor funny emoticons 02:57
03:36 petdance joined 04:10 plobsing joined 04:15 bubaflub joined 05:03 rurban_ joined 05:13 dalek joined 05:15 snarkyboojum joined
sorear suprisingly enough, the thing on macros actually mostly makes sense 06:11
ECHAN
dalek TT #1604 created by epico++: It seems that there is a typo in docs/book/pir/ch04_variables.pod. 06:21
TT #1604: trac.parrot.org/parrot/ticket/1604
07:07 JimmyZ_ joined 07:12 dalek joined 07:35 fperrad joined 07:36 fperrad_ joined 08:18 snarkyboojum joined 08:53 dalek joined 09:11 iblechbot joined 09:29 JimmyZ joined
dalek rrot: r46202 | jimmy++ | trunk/docs/book/pir/ch04_variables.pod:
Applied patch form TT #1604, courtesy of epico++.
09:43
TT #1604 closed by jimmy++: It seems that there is a typo in docs/book/pir/ch04_variables.pod. 09:45
TT #1604: trac.parrot.org/parrot/ticket/1604
tracwiki: v5 | allison++ | UsingGitAndSvnInTrac 10:02
tracwiki: trac.parrot.org/parrot/wiki/UsingGi...ction=diff
10:34 JimmyZ joined
dalek nxed: r454 | julian.notfound++ | trunk/winxedst0.cpp:
fix var intializers fro int and string in stage 0
11:10
11:26 Whiteknight joined
dalek kudo: 376196d | masak++ | src/glue/contextuals.pir:
[src/glue/contextuals.pir] s/concat/replace/
11:56
nxed: r455 | julian.notfound++ | trunk/winxedst0.cpp:
fix annotations and '.local' generation of int and string statements in stage 0
12:08
nxed: r456 | julian.notfound++ | trunk/winxedst0.cpp:
tab --> spaces
12:37 joeri joined
bacek Good localtime, humans 12:58
dalek nxed: r457 | julian.notfound++ | trunk/winxedst1.winxed:
some annotation fixes in stage 1
13:07
13:21 fedov joined 13:30 Mokurai joined 13:33 parthm joined
Whiteknight good morning, bacek 13:50
14:05 lucian joined 14:22 iblechbot joined
JimmyZ Good evening, #parrot 14:23
14:28 kid51 joined
kid51 Am getting massive failures in t/pmc/packfile*.t 14:29
nopaste "kid51" at 192.168.1.3 pasted "Massive failures in trunk in t/pmc/packfile* tests." (147 lines) at nopaste.snit.ch/20423 14:30
kid51 In addition to the above paste, I get this output: 14:31
PackFile_unpack: This Parrot cannot read bytecode files with version 6.10.
This is after my usual 'make realclean; perl Configure.pl; make' 14:32
This observed at r 46202
nopaste "kid51" at 192.168.1.3 pasted "Also getting these failures in trunk at r46191." (147 lines) at nopaste.snit.ch/20424 14:53
kid51 ... with same PackFile_unpack warning
The warning originates at line 1029 of src/packfile.c 14:54
15:08 plobsing joined
kid51 NotFound: ping 15:08
15:26 theory joined
NotFound kid51: pong 15:28
kid51 NotFound: I'm getting these big errors in packfile-related tests. I see that you did work on them in r46138-46141 or so. Can you help? 15:29
NotFound kid51: looks like the native pbc aren't updated. 15:30
kid51 When I read that section of src/packfile.c, I had that thought too.
I tried running the program suggested just above that line, but got the same errors. OTOH, I've never run that program before. 15:31
NotFound Let me do a few checks... 15:32
kid51 I have gotten PASS at 46137, 46138 and 46141.
Am posting results to Smolder.
All these observed on linux/i386 with no optimization or anything fancy ... i.e., the same way I've always built/tested. 15:33
NotFound kid51: try tools/dev/mk_native_pbc --noconf 15:34
Checked, commiting.. 15:37
kid51 Is there a Makefile problem? 15:38
[li11-226:parrot] 551 $ make realclean;perl Configure.plMakefile:185: src/dynpmc/Defines.mak: No such file or directory
Makefile:3881: src/dynpmc/Rules.mak: No such file or directory
make: *** No rule to make target `src/dynpmc/Rules.mak'. Stop.
NotFound kid51: I don't have that failure. 15:39
kid51: Are you using parallel make?
kid51 No 15:40
Those two files showed up earlier as: ? on svn status
I thought they were left over from a failed build, so I removed them.
NotFound # Generated by Parrot::Configure::Compiler from src/dynpmc/Rules.in 15:41
dalek rrot: r46203 | NotFound++ | trunk/t/native_pbc (4 files):
update native pbc type 1 to PBC 6.11
15:48
kid51 NotFound: Yes, that worked. I got a PASS: smolder.plusthree.com/app/projects/...ails/33587 15:50
Those two files should have been governed by an svn:ignore property. Committed fix in r46204.
15:52 fedov left
dalek rrot: r46204 | jkeenan++ | trunk/src/dynpmc:
Add '*.mak' to list of files governed by svn:ignore in src/dynpmc/.
16:04
16:11 jan joined
dalek nxed: r458 | julian.notfound++ | trunk/winxedst1.winxed:
class scope constants and diagnose invalid elements inside class in stage 1
16:17
dukeleto 'ello 16:23
dalek nxed: r459 | julian.notfound++ | trunk/winxedst1.winxed:
attempt to improve early detection of bad constant expansion
16:32
16:48 davidfetter joined
dukeleto oooooh, somehow, between late thursday night, and now, a Parrot bug got fixed that was adversely effecting PL/Parrot 16:49
(whoever did that)++
dukeleto needs to write a test for it, to make sure it stays that way
Parrot_compile_string was not populating the error string when given syntactically incorrect PIR, but now it seems to be doing that 16:50
16:50 davidfetter joined
arnsholt Oh, it's a parrot plsql. For a second I thought it was a PL/1 implementation ^^ 16:51
davidfetter gets the impression he joined *just* a little bit late 16:52
dukeleto arnsholt: :) 16:55
davidfetter: yep :)
davidfetter thinks of pl/parrot as, among other things, a PL/DSL construction kit 16:56
well, that's what it *will* be :)
right now, it's a chance to help make parrot history :) 16:57
dalek parrot: 3e008ec | dukeleto++ | plparrot.c:
Report the Parrot error message when PIR does not compile

populating the error string with Parrot_compile_string when PIR did not compile. I need to make sure that there is a test for this "feature" in Parrot core.
davidfetter or postgres history, whichever you prefer
dukeleto davidfetter: yes, that is a good way to think about it. PL/Parrot will enable DSL's for Postgres 17:17
dalek nxed: r460 | julian.notfound++ | trunk/winxedst1.winxed:
some refactor of code generation in stage 1
17:24
rrot: r46205 | plobsing++ | trunk (3 files):
headerizer
17:25
purl i think headerizer is making me happy
dalek rrot: r46206 | plobsing++ | trunk/MANIFEST.SKIP:
mk_manifest_and_skip
purl rumour has it mk_manifest_and_skip is the canonical mechanism for (re)generating MANIFEST
nxed: r461 | julian.notfound++ | trunk/winxedst1.winxed:
optimize integer subtraction and zero initialization
17:53
18:01 TiMBuS joined 18:13 mikehh_ joined 18:33 chromatic joined
dukeleto anybody know how to say "if x is less than y" in a GNU Makefile ? 18:47
arnsholt Doesn't look like that's supported from the manual 18:50
There's ifeq and ifneq, and ifdef and ifndef, but nothing else AFAICT 18:51
18:51 LoganLK joined
arnsholt You might be able to fake it by dispatching to the shell though 18:51
What exactly are you trying to do? 18:52
dukeleto looks like i can use the 'expr' command 18:53
arnsholt: i want my compile of PL/Parrot to bomb out if PARROT_REVISION < x
davidfetter generally, if it's not available on windows, it's better not to use it 18:56
how about asking on -hackers :)
chromatic msg Coke Want a dirty hack to fix your memory problems in the CodeString branch? Store an RSA in emit(), and only join it when something requests the string value *or* during mark(). 19:01
purl Message for coke stored.
chromatic I'll let the rest of you alternately shun and congratulate me for that. 19:02
19:03 Mokurai joined
arnsholt dukeleto: Ah. Doesn't Configure.pl handle that? 19:04
dukeleto arnsholt: PL/Parrot does not have a Configure.pl 19:14
19:27 kurahaupo joined
dalek parrot: e7c449b | dukeleto++ | Makefile:
Give a security warning when compiling with older Parrots

that does not allow us to intercept the open opcode.
19:31
NotFound Shit, I have a parrot segfault compiling a short winxed program, only with that program and only with optimized build. 19:38
dukeleto NotFound: have you tried using the trace runcore to see each opcode ? 19:48
NotFound dukeleto: as usual, using trace doesn't fail
arnsholt Mmm. Heisenbug 19:50
dukeleto NotFound: what does the backtrace on the core file look like?
NotFound: you will probably want to add -g to your optimized build first
19:51 mikehh joined
NotFound dukeleto: mark_object_cache 19:51
dukeleto NotFound: perl Configure.pl --ccflags=-g --optimized
NotFound Did I said before that I hate Parrot_pmc_free_temporary ? 19:53
dukeleto NotFound: nope. I've never even heard of it. 19:54
is there no function in the C API to print a Parrot_String to STDOUT ? 19:59
chromatic Something ParrotPIO_printf, I think. 20:00
Use the %Ss escape in your format string.
msg Coke Nevermind, I committed it in r46207, and the result is even faster than the fastest I could get trunk with my approach. 20:03
purl Message for coke stored.
dukeleto chromatic++ # i forgot about %Ss 20:05
dalek rrot: r46207 | chromatic++ | branches/codestring/src/pmc/codestring.pmc:
[PMC] Made CodeString PMC join its STRING parts during mark() as well as

STRING headers, and the result is a much faster CodeString that's reasonably parsimonious with memory.
20:09
dukeleto yay for parsimonious PMC's 20:13
i think i have narrowed down the bug in Parrot_compile_string 20:14
Parrot_compile_string only populates the error string when an opcode is not given the proper arguments
if there is an actual syntax error, or an unknown opcode is called, IMCC throws an error and the error string never gets populated 20:15
moritz chromatic: Pod::PseudoPod::LaTeX doesn't render =begin screen... =end screen blocks 20:16
chromatic Hm, that's strange. I thought I had them working. 20:17
In the pm file for Pod::PseudoPod::LaTeX, add 'screen' to the qw() list on line 20. 20:18
dukeleto, sounds like Parrot_compile_string should install a C exception handler. 20:20
20:22 lucian_ joined
dukeleto chromatic: i will look into that. i have a test that i am commiting now, for the case where it works 20:22
t/codingstd/c_arg_assert.t is failing
20:23 Mokurai joined
dalek rrot: r46208 | dukeleto++ | trunk/t/src/embed.t:
[t] Add a test for Parrot_compile_string populating the error string
20:25
dukeleto chromatic: what function do i need to read up on for installing a c exception handler?
chromatic Parrot_ex_add_c_handler() is the first place, though I'm sure there's something in PDD 23. 20:45
20:46 parthm joined 21:01 parthm left
dalek rrot: r46209 | NotFound++ | trunk/src (3 files):
implement PMCProxy vtable init_int and use it
21:14
21:26 Mokurai1 joined
chromatic I so rarely do this, but NotFound++ 21:42
NotFound chromatic: wich one, the shown by dalek or the next? 21:43
chromatic BOth.
NotFound :)
dalek rrot: r46210 | NotFound++ | trunk (13 files):
implement Integer vtable init_int and use it in several places where is never HLL mapped
21:47
21:55 donaldh_ joined
dalek kudo: 78fb4ec | jonathan++ | src/Perl6/Actions.pm:
Fix inheritance and doing of lexical classes / roles.
22:03
kudo: db73c1f | jonathan++ | src/Perl6/Compiler/Package.pm:
Fix declaring multiple lexical classes in a given scope.
kudo: a38bf7e | jonathan++ | docs/ROADMAP:
Lexical classes now essentially work and are tested. We'll no doubt find bugs, but I the bulk of the work is done, so move them to completed section of the ROADMAP.
22:14
22:35 plobsing joined 23:17 tcurtis joined 23:26 joeri joined
dalek rrot: r46211 | NotFound++ | trunk/src/pmc (4 files):
a few more init_int usages
23:42
bacek Good morning 23:50
purl For you maybe.
23:50 Whiteknight joined
bacek Whiteknight, aloha 23:54
Whiteknight hello
bacek chromatic, around? 23:56
chromatic I'm here. 23:58
bacek I've got one more argument to switch from svn.
We are loosing development history. 23:59
chromatic How so?
bacek Just because branch merge is single chunk of diff
And for changed lines I can only check _when_ it was updated. Not _why_.