Camelia, the Perl 6 bug

IRC log for #parrot, 2008-09-07

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:03 dalek r30843 | tene++ | trunk:
00:03 dalek : Add hll_map method to parrotinterpreter.pmc
00:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30843
00:04 nopaste "tene" at 67.166.109.77 pasted "Someone should make a test out of this for interp.hll_map" (19 lines) at http://nopaste.snit.ch/13982
00:04 NotFound Can @INC be modified at runtime?
00:04 chromatic In Perl 6 or Parrot?
00:05 NotFound rakudo
00:05 NotFound Scope not found for PAST::Var '@INC'
00:05 chromatic Isn't it a superglobal?  @*INC?
00:06 NotFound That was :)
00:08 NotFound > use Xlib;
00:08 NotFound Can't find ./Xlib in @INC
00:08 NotFound > @*INC.push('/home/julian/parrot/examples/nci/');
00:08 NotFound > use Xlib;
00:08 NotFound > say Xlib::DisplayName();
00:08 NotFound :0.0
00:08 NotFound >
00:08 NotFound Very nice the rakudo command prompt :)
00:10 AndyA joined #parrot
00:11 pmichaud cotto_home: one can get the current LexPaid by querying the interpreter object
00:11 pmichaud *LexPad
00:11 NotFound Who pays Lax?
00:11 NotFound Lex
00:11 pmichaud $P0 = getinterp;   lexpad = $P0['lexpad']
00:13 cotto_home pmichaud++
00:14 cotto_home now the fun part is making it iterable, which it isn't atm
00:24 cognominal joined #parrot
00:54 dalek r30844 | cotto++ | trunk:
00:54 dalek : [dynpmc] add a TODO'd iterator test for DynLexPads
00:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30844
00:59 dalek r30845 | cotto++ | trunk:
00:59 dalek : [dynpmc] shift code and docs so functions are closer to their POD documentation
00:59 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30845
01:24 dalek r30846 | chromatic++ | trunk:
01:24 dalek : [PMC] Fixed coding standards nits.
01:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30846
02:23 dalek r30847 | chromatic++ | trunk:
02:23 dalek : [src] Work around potential infinite loop when mapping Integer to a
02:23 dalek : HLL-specific type (reported in RT #30843, elaborated in RT #58636).
02:23 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30847
03:27 Andy joined #parrot
03:39 Theory joined #parrot
03:40 dalek r30848 | tene++ | trunk:
03:40 dalek : [cardinal]
03:40 dalek : * Map RPA to CardinalArray
03:40 dalek : * Support slurpies a bit better
03:40 dalek : * Still some weird bugs here...
03:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30848
03:45 Tene Ah, that doesn't quite work yet because I don't have a .HLL statement.
03:55 tetragon joined #parrot
04:26 Zaba joined #parrot
04:33 Zaba_ joined #parrot
04:44 apannu_ joined #parrot
05:32 tetragon joined #parrot
05:54 Ademan joined #parrot
06:02 dalek r30849 | cotto++ | trunk:
06:02 dalek : [config] mark the Config hash as read-only, plus a test
06:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30849
06:28 Ademan joined #parrot
06:39 cotto_home jonathan, pign
06:39 cotto_home *ping
06:43 cotto_home jonathan, nm.  found it
06:55 Zaba joined #parrot
07:42 Anandeep joined #parrot
08:10 rurban joined #parrot
08:12 Zaba_ joined #parrot
08:15 rurban joined #parrot
08:17 rurban joined #parrot
08:20 iblechbot joined #parrot
08:27 bacek joined #parrot
08:29 rurban seen jonathan
08:29 purl jonathan was last seen on #parrot 21 hours, 39 minutes and 47 seconds ago, saying: And I'm off to Vienna...cu
08:46 barney joined #parrot
09:13 rurban_ joined #parrot
09:16 rurban jonathan: This is for you http://use.perl.org/~rurban/journal/37380
09:17 dalek r30850 | julianalbo++ | trunk:
09:17 dalek : Mysql example module: rename method result to store_result, add method use_result and update example programs
09:17 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30850
09:44 bacek moritz: ping
09:45 moritz bacek: pong
09:45 bacek moritz: I've got initial patch for slurpy params
09:46 bacek #58278
09:46 bacek But my spectest regression run complains multiple times about "Use of uninitialized variable"
09:47 moritz yes, that's known
09:47 bacek is it my fault, or latest rakudo broken somehow?
09:47 moritz pmichaud++ added that warning the other day
09:47 bacek ah, ok
09:47 moritz it's only a warning
09:48 bacek purl: nopaste?
09:48 purl nopaste is, like, at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/
09:48 NotFound Someone can test the latest mysqltest.p6 with a short table and confirm that the --- Stored copy --- part is wrong?
09:49 nopaste "bacek" at 58.111.4.150 pasted "Initial patch for slurpy params for moritz" (29 lines) at http://nopaste.snit.ch/13985
09:49 moritz NotFound: just a sec
09:50 NotFound Wrong data, forget my formatting errors.
09:50 moritz NotFound: yes, it's wrong
09:50 NotFound Is a unmanagedstruct.pmc fault, I'll fix it now.
09:50 moritz NotFound: it seems to repeat the same dataset all over again, with smalll variations
09:51 bacek moritz: this patch brakes some tests...
09:51 NotFound But wanted some confirmation first.
09:52 moritz bacek: testing now...
09:53 moritz bacek: it makes the first 6 tests of t/spec/S06-signature/slurpy-params.t pass at least
09:54 moritz and dies on the one with a type declaration, which is probably still a TODO
09:54 dalek r30851 | julianalbo++ | trunk:
09:54 dalek : drop the external flag in strings created from UnManagedStruct
09:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30851
09:55 NotFound moritz: can you update and test again?
09:55 bacek moritz: yes. Type check is not implement yet (AFAIK)
09:55 moritz NotFound: when my other test has run through, yes
09:56 moritz bacek: in general it is, but it would have to be done on each item of the slurpy array, not on the array itself
09:57 moritz NotFound: seems to work fine now, from a quick visual inspection
09:57 moritz NotFound++
09:58 NotFound Please take a look at the TODO added with the fix.
10:01 moritz NotFound: I would write the last inner loop in mysqltest.p6 as say map({"'$_'"}, $rc).join(', ');
10:01 NotFound moritz: I was looking at that part. Don't understand why the for flattens the array.
10:02 moritz basically rakudo is borked wrt list flattening
10:03 moritz rakudo: my %h = ( a => [[1, 2], [3, 4]], b => 5); say %h<a>.perl
10:03 polyglotbot OUTPUT[[1, 2, 3, 4]␤]
10:03 moritz see what I mean?
10:03 NotFound I'm a poor C guy, that syntax overload my brain %-)
10:04 moritz it's a nested list that I put into the hash, and a flat lists falls out
10:05 NotFound Your suggestion also flattens.
10:05 moritz uhm right, I missed that
10:06 moritz bacek: maybe add that patch to rt, and ask for comments?
10:06 moritz bacek: I think jonathan is working on the signature part
10:06 NotFound I'll use a while like the first loop for anow.
10:07 bacek moritz: yes, I'll add it to RT. I just want confirmation that it works on someone else box. And "use of uninitialized var" is not my fault ;)
10:08 moritz btw the C style for loop is called 'loop' in Perl 6, so you can write loop(my $row = $r.fetch_row; defined $row; $row = $r.fetch_row()) { ... }
10:09 moritz bacek: yes, confirmed ;)
10:09 moritz anyway, that's just stylistic nonsense, good work ;)
10:10 NotFound moritz: I avoided that way for fear of errors or misfeatures %-)
10:12 dalek r30852 | julianalbo++ | trunk:
10:12 dalek : avoid flattening in example mysqltest.p6
10:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30852
10:15 NotFound I have a nice idea: store the error reports for the Mysql module in a Mysql database accessed with parrot X-)
10:15 moritz and then use this database for testing ;)
10:16 NotFound At my work they said one time that reports of broken fax machines must be sended by fax.
10:17 * moritz remebers the hwresnet helpdesk he tried to contact because of his broken phone... it was only reachable by phone, of course
10:17 NotFound I said: nice, and reports about forgotten mail passwords and such must be sended by mail.
10:24 moritz NotFound, Tene: could you please take a look at RT #58308?
10:25 moritz I'm not familiar with the core, so I'm hesitant to apply it
10:25 moritz and a rakudo ticket depends on that
10:25 bacek moritz: hey! This is my patch! ;)
10:26 moritz bacek: yes.
10:26 moritz bacek: I want to get patches applied as soon as possible, but only those which make sense, which is hard for me to judge outside my area of expertise
10:27 NotFound moritz: The string.pmc part?
10:28 moritz NotFound: yes, and the tests in the last comment
10:30 NotFound Last comment in the list or in the ticket?
10:31 moritz in the ticket
10:31 NotFound string_reverse_index_test.t ?
10:31 moritz yes
10:32 * bacek still don't understand how to reply to ticket with CC to list...
10:32 NotFound There is a button to add it from some weeks ago.
10:34 NotFound The CHARSET_RINDEX thing already exists, or need some other patch?
10:35 bacek NotFound: already exists.
10:38 bacek_ joined #parrot
10:42 NotFound Patches applied locally, doing a full test.
10:43 moritz NotFound: if you think it's fine, and the tests pass, please commit
10:43 NotFound I'll do, but I left the rakudo part for you.
10:43 NotFound s/left/let
10:44 moritz ok
10:47 NotFound moritz: Did you read my comment here abot unfair comparaison?
10:48 NotFound Run xlibtest.pir and xlibtest.p6, draw some lines on each, and compare redraw speed.
10:52 dalek r30853 | julianalbo++ | trunk:
10:52 dalek : add reverse_index method to string.pmc and a test for it, RT#58308, bacek++ moritz++
10:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30853
10:56 bacek_ joined #parrot
11:01 bacek_ purl: STD.pm?
11:01 purl i heard STD.pm was http://svn.pugscode.org/pugs/src/perl6/STD.pm
11:26 moritz msg bacek the rakudo patch for rindex doesn't build ...
11:26 purl Message for bacek stored.
11:26 bacek_ joined #parrot
11:37 bacek moritz: I found my 3-month old patch for List.uniq. #55484. Please commit (or reject).
11:37 bacek hey, how I can read messages stored by purl?
11:38 tetragon joined #parrot
11:43 NotFound bacek tell 'messages' in a query
11:43 bacek NotFound: thanks
11:46 moritz bacek: is uniq specced?
11:46 bacek moritz: probably. Checking spec
11:46 dalek r30854 | julianalbo++ | trunk:
11:46 dalek : some cleaning and comments in example Mysql module
11:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30854
11:47 * bacek checking spec
11:48 bacek moritz: no. It's unspecced. But spectested ;)
11:49 moritz we should change that to eval_dies_ok('(1, 2, 3).uniqe', 'List.uniq not specced');
11:51 bacek moritz: hmm... At least we should change 'List.uniq' to use '!EXPORT'.
11:52 bacek git svn rebase is very-very slow... I don't know why...
11:54 moritz if it's not specced it's not going in
11:54 moritz I'll ask @Larry
11:54 bacek moritz: check S29-list/uniq.t
11:55 bacek There is some comments.
11:57 moritz bacek: yes. Seems a bit out-of-dateish
12:06 moritz bacek: I sent a mail to p6l asking for clarification
12:09 nopaste "bacek" at 122.110.89.49 pasted "Str.rindex for moritz" (60 lines) at http://nopaste.snit.ch/13986
12:10 bacek moritz: this version builds on my box.
12:10 bacek And S29-list/rindex passes
12:10 moritz bacek: I'll take a look later, lunch now; thanks
12:12 bacek moritz: bone appetite ;)
12:12 moritz mercy
12:18 Whiteknight joined #parrot
12:29 dalek r30855 | Whiteknight++ | pdd09gc:
12:29 dalek : [pdd09gc] updating to trunk from r30672
12:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30855
12:30 jan joined #parrot
12:43 rurban jonathan: net2pbc crashes with c/Programme/Mono-1.9.1/lib/mono/2.0/mscorlib.dll
12:43 jonathan Crashes in what sense?
12:43 rurban Segmentation fault (core dumped)
12:44 jonathan Likely Parrot regression.
12:44 rurban Interesting
12:44 rurban The smaller examples works mostly
12:44 jonathan OK
12:44 jonathan I've not looked at it for quite a while.
12:44 rurban I just finished the refactoring of SRM into a seperate compilers/SRM and put out the dotnet specific pieces
12:45 rurban So that I can go on with WMLScript and jvm
12:45 rurban jonathan: This is for you http://use.perl.org/~rurban/journal/37380
12:46 rurban How should code access to a stack-private temporary index 1, e.g.
12:48 rurban I guess similar to the load/store ops
12:48 jonathan rurban: It just increments a local?
12:49 rurban yes.
12:49 jonathan Rather than loading it onto the stack first?
12:49 jonathan OK.
12:49 rurban Yes, immediate
12:49 purl i guess immediate is running as soon as possible, which should give the wanted effect for both cases
12:49 jonathan I don't think you need to class that as a load instruction. All of the locals get allocated registers.
12:49 rurban Similar to [ldlarga] I thought
12:49 jonathan Yes
12:49 jonathan Well, not that one
12:49 jonathan That loads the address
12:50 rurban DEST0 = net_reg_ptr arg ARG1 ?
12:50 jonathan Look at ldloc instructions to see how instructions reference local variables
12:50 jonathan But you don't want it to be of load class
12:50 rurban Like [ldind.i1]  ${STACK0}.load_int
12:51 rurban Ah, I see: ${LTYPES}[0]
12:52 jonathan I tink it'd look something like
12:53 rurban instruction = ${LTYPES}[${ARG0}] = ${LTYPES}[${ARG0}] + ${ARG1}
12:53 rurban arguments = uint8, int8
12:53 rurban That should be it.
12:53 jonathan [ldloc]
12:53 jonathan code =
12:53 jonathan class = op
12:53 jonathan pop = 0
12:53 jonathan push = 0
12:53 jonathan arguments = uint32
12:53 jonathan pir = <<PIR
12:54 jonathan ${STEMP0} = ${ARG0}
12:54 jonathan ${INS} = concat "inc local"
12:54 jonathan ${INS} = concat ${STEMP0}
12:54 jonathan PIR
12:54 jonathan Apart from replace ldloc with inc
12:54 jonathan After code put the opcode number in hex
12:54 jonathan And change unit32 to whatever the type of value in the bytecode is.
12:54 purl jonathan: that doesn't look right
12:54 jonathan (e.g. which says which number local it is)
12:55 jonathan Oh, you probably want after concating the number of the local a newline
12:55 jonathan ${INS} = concat "\n"
12:57 rurban Do I really need to stringify it?
12:57 rurban But looks good.
12:57 purl O_O
12:58 bacek msg moritz my patch for slurpy args shouldn't be applied. It's useless... Args passing should be refactored.
12:58 purl Message for moritz stored.
12:58 jonathan rurban: Yes, because it goes in an I register
12:58 jonathan But it's an int type
12:58 jonathan s/but/because/
12:59 jonathan And there's no concat_s_i op
12:59 rurban jonathan: May I make it to accept lowercase opcode hex  also?
12:59 jonathan So you can write code = 7f as well as code = 7F?
12:59 rurban Whow, with jvm: Currently able to translate 217 out of 213 instructions
13:00 rurban yes
13:00 jonathan The 213 was hardcoded!
13:00 jonathan Yes, you can do that.
13:00 rurban I have a mixup of dotnet and jvm currently, so I got duplicates.
13:00 jonathan Ah. :-)
13:00 rurban error:imcc:Label 'PRE_OP_66_LAZY_MOVE_0' already defined
13:00 jonathan Are you actually translating anything successfully yet? :-)
13:01 jonathan Ouch.
13:01 rurban Not yet. I have to finish the assembly <=> class file differences. (No PE header, no tables, ...)
13:01 jonathan Aha, OK.
13:01 rurban just simple class bytecode, and for jar files unzip it and do it recursively
13:01 jonathan Hmm. I wonder if that is because it doesn't know how to handle ops that don't push or pop anything.
13:02 rurban the javap disassembler is helpful
13:02 jonathan Ah, it does know...nop does that
13:02 jonathan Try removing the pop and push lines entirely.
13:03 rurban You mean the number of stack args from all ops?
13:03 jonathan No, no
13:03 jonathan I mean for the inc op
13:03 jonathan Or is the error you just pasted not related to that?
13:04 rurban not sure.
13:04 jonathan I pasted in my suggestion "pop = 0" and "push = 0", but you can delete those two lines
13:04 jonathan OK. It's hard without knowing where that error is coming from.
13:04 rurban sure. did it. I need some more hours cleaning up the mess
13:04 jonathan :-)
13:04 jonathan I spent a long, long time developing the toolchain for this.
13:04 rurban The error is because code 66 is defined multiply
13:05 jonathan Aha.
13:05 jonathan That'd do it.
13:05 rurban Your hours are appreciated.
13:05 jonathan The tools are probably not the most user-friendly.
13:05 rurban well, B::C is similar
13:05 rurban or the perl5 bytecode compiler/loader
13:06 jonathan It was my degree project. So while I certainly was trying to produce good, exensible code that others could hack on or base other trnaslators on, there was a lot of "make it work in time" too.
13:06 rurban Just PIR is causing me headaches. The target format
13:06 jonathan :-)
13:06 jonathan Yes, and here you have PIR that produces...PIR.
13:06 jonathan Interestingly, it is fast.
13:07 rurban Eventually I want to convert perl5 bytecode or madprops to pir: B::PIR
13:07 jonathan When I did implement this, if I translated some big .Net assembly, the translator produces PIR faster than Parrot turns that into PBC. :-)
13:07 rurban really, you could translate mscorlib.dll ?
13:07 jonathan Not all of it.
13:07 purl not all of it is fast, but much of it is
13:07 jonathan It skipped classes that it could not do.
13:08 jonathan But it actually could make it all the way through mscorlib.dll.
13:08 rurban good to hear
13:08 jonathan And get a fair number of classes. Main issue in that library were methods that were built into the VM.
13:08 rurban So I'll go through it with gdb
13:08 jonathan Which would need hand-coding.
13:08 jonathan But in the past, I used to make it run through a load of the .Net assemblies provided by Mono.
13:08 jonathan There's some stats in the paper.
13:09 rurban InternalGetHashCode, MemberwiseClone and those?
13:09 jonathan Those, yes. And plenty of others.
13:09 jonathan IIRC, I had some tool that gave a list of them.
13:09 jonathan Maybe I did.
13:10 jonathan There is some way to get a verbose "why we failed to translate a class" for each class it can't translate.
13:10 rurban tools/analysis.pl
13:10 dalek r30856 | moritz++ | trunk:
13:10 dalek : [rakudo] implement Str.rindex, bacek++. Closes RT #58308
13:10 dalek : Patch courtesy by Vasily Chekalkin <bacek at bacek.com>
13:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30856
13:10 jonathan See section 4.1.2 in the paper.
13:10 rurban maybe it's andrew's new tri-color gc
13:11 jonathan I don't think that's made it into trunk yet?
13:11 rurban It did, rigth after 0.7.0
13:12 rurban did it? hmm
13:12 moritz don't think so
13:12 moritz nci did it
13:12 jonathan OK, NCI was merged in then.
13:12 rurban yes, indeed
13:13 jonathan But I don't think I really use NCI.
13:13 rurban I mixed it up.
13:13 rurban just ncigen
13:13 rurban When should I start adding it to my branch? When 20% is finished or 50%?
13:14 rdice joined #parrot
13:14 rurban I mean languages/jvm
13:15 rurban I'm at 30% I guess
13:15 jonathan When should you put languages/jvm in trunk, you mean?
13:15 rurban No, just to my cygwin070 branch
13:16 jonathan Commit early, commit often... :-)
13:16 rurban I think I wait just for my CLA being clreared then I go on.
13:16 jonathan OK, sounds good.
13:16 * jonathan is excited to see someone working on this stuff
13:16 rurban WMLScript also needs some treatment
13:17 NotFound If you have some recent problem with nci and (Un)ManagedStruct, look at my last change of UnManagedStruct.pmc
13:17 rurban I rather want to work on a compacting GC, but jvm is nice too.
13:17 NotFound (drop the capitals)
13:17 rurban I could compile clisp or perl5 to jvm also then
13:19 jonathan I did try to see if I could translate much of IronPython with net2pbc. But too much missing stuff.
13:21 rurban Dynamic Language Runtime (DLR) what is this?
13:21 rurban A CLR extension for dynamic languages from MS?
13:25 jonathan Yes.
13:25 jonathan Not had chance to look at it much. :-(
13:26 rurban Does this have extra bytecodes?
13:27 rurban maybe they had to extend code=FE more :)
13:27 rurban So it should be named multi-bytecode
13:30 rurban I see. JVM needs the new invokedynamic, the DLR wants to do without new ops. They added objects to the AST tree, to do dynamic method lookup.
13:34 rurban CLOS does this with an extra CLASS tag for each variable.
13:34 jonathan Yes, I think they did no VM extensions.
13:34 jonathan Unlike Parrot, they didn't have dynops support in .Net.
13:35 rurban The JVM is also a bit crippled
13:35 purl okay, rurban.
13:35 rurban I'm just reading http://blogs.sun.com/jrose/entr​y/bravo_for_the_dynamic_runtime
13:38 rurban Interesting to read how sun bashes the CLR internals
13:39 dalek r30857 | julianalbo++ | trunk:
13:39 dalek : add free result method and throwing on errors to Mysql examples
13:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30857
13:52 Zaba joined #parrot
13:54 Whiteknight joined #parrot
14:11 rhr joined #parrot
14:12 wknight8111 joined #parrot
14:46 dalek r30858 | julianalbo++ | trunk:
14:46 dalek : add creation and check of prepared statements to example Mysql module
14:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30858
15:10 particle joined #parrot
15:24 tetragon joined #parrot
15:25 gmansi joined #parrot
15:33 nopaste joined #parrot
15:39 tetragon joined #parrot
15:48 grim_fandango joined #parrot
16:02 tetragon joined #parrot
16:09 jan joined #parrot
16:40 dalek r30859 | julianalbo++ | trunk:
16:40 dalek : add an assertion for RT#42693
16:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30859
16:48 paco joined #parrot
16:54 Tene moritz: what do you want me to do with rt #58308?
16:57 Zaba_ joined #parrot
17:09 moritz Tene: I wanted a review, but NotFound++ already did that
17:10 Tene Orite, review.  That thing people do to patches.
17:10 Tene Really, I'm awake.  I promise.
17:11 pmichaud moritz: did you see RT #58644?
17:11 moritz pmichaud: yes, I already added a test to rindex.t
17:11 pmichaud okay, good.  Let's get bacek to take a look at it.
17:11 pmichaud I could probably fix it, but it'd be better if he did it.  :-)
17:12 moritz aye
17:12 rurban_ joined #parrot
17:14 NotFound There is a way in rakudo to declare an integer array?
17:14 moritz my Int @x;
17:15 pmichaud Rakudo doesn't enforce that, though.
17:15 pmichaud right now  my Int @x;  probably does the same as   my @x;
17:15 NotFound I'm worried about the big difference in speed between xlibtest.pir and xlibtest.p6
17:15 pmichaud NotFound: speed hasn't been our focus yet
17:16 NotFound pmichaud: I know, but is sooooooo big.
17:16 dalek r30860 | pmichaud++ | trunk:
17:16 dalek : [rakudo]: spectest-progress.csv update: 158 files, 3287 passing tests
17:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30860
17:16 pmichaud it's worth checking if the issue is execution speed or compilation speed
17:16 pmichaud we know that compilation speed is low
17:16 NotFound Execution.
17:16 purl execution is probably immoral
17:17 pmichaud and if your question is  "is there a way in Rakudo to declare something that is a ResizableIntegerArray or FixedIntegerArray" -- no, there's not at present and may not be for some time.
17:17 pmichaud closest would be  "my int @a";
17:17 NotFound Is a simple drawing program. It has an array of arrays to save the lines drawed. The difference is when redrawing.
17:17 moritz which is NYI
17:18 moritz or even my int @a[10]
17:18 pmichaud lists and arrays in rakudo are definitely slow at the moment -- things should speed up when we have the lazy list implementation
17:18 pmichaud there's a lot of copying taking place
17:19 NotFound Is an array of references to arrays, better said.
17:20 pmichaud at present rakudo does a lot of copying even in that case
17:20 pmichaud it's something that I'm aiming to fix (like, in the next few days)
17:20 pmichaud I'm finally getting my jfdi-energy back :-)
17:21 NotFound I was not blaming, justo curious ;)
17:22 NotFound Anyway, those that have an X-server can use the program as a quick benchmark tool for the progress in this thing.
17:22 dalek r30861 | pmichaud++ | trunk:
17:22 dalek : [rakudo]:  Add 'fail' function.
17:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30861
17:23 pmichaud I tried running it on my system but it didn't work.  It appears to be looking for xlib in a specific place
17:23 pmichaud (this was a day or two ago)
17:24 NotFound pmichaud: it just uses: loadlib 'libX11', blame the dynaloader.
17:24 pmichaud okay, I'll check into it.
17:25 NotFound Or maybe you don't have a symbolic link from libX11.so to libX11.so.xx
17:25 pmichaud lrwxrwxrwx 1 root root     15 2008-07-18 16:28 libX11.so.6 -> libX11.so.6.2.0
17:26 pmichaud but that's about it.
17:26 pmichaud anyway, I have to head to a soccer game, so I'll look into it later.
17:27 NotFound You need another one without the .6
17:30 dalek r30862 | kjs++ | trunk:
17:30 dalek : [pirc/new] add linkage to libparrot
17:30 dalek : + refactoring of code
17:30 dalek : + added 2 files for better code organization
17:30 dalek : + updated MANIFEST.
17:30 dalek : + updated README on how to build and link.
17:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30862
17:47 paco joined #parrot
17:52 spreiter joined #parrot
18:05 spreiter hi. I'm new to parrot. Is there any reference on how to write PIR? Just doing the tutorial and there is an exercises that asks me to modify the squaak.pir so it prints Squaak for Parrot VM. I found the solution through google and made a grep search in the docs directory for "commandline_banner" but no luck.
18:07 NotFound spreiter: start by taking a look at docs/imcc/imcfaq.pod
18:07 moritz spreiter: have you seen http://www.parrotcode.org/examples/pir.html already?
18:08 NotFound The last part, that starts with: PIR PROGRAMMING
18:08 spreiter Thanks for the link. haven't seen that
18:09 cotto_home spreiter, the tests in t/pmc/*.t should also be an abundant source of fairly simple example code
18:10 NotFound cotto_home: IMO .t files are not easy to understand for beginners.
18:10 Ademan joined #parrot
18:12 spreiter thanks for the hints :-)
18:12 spreiter I think I should first finish the tutorial series
18:13 NotFound And of course, imcfaq.pod points you to: examples/tutorials
18:13 NotFound tutorial
18:13 purl rumour has it tutorial is http://search.cpan.org/dist/Catalyst-M​anual/lib/Catalyst/Manual/Tutorial.pod
18:16 spreiter I'll check it out. Thanks for the pointers
18:20 spreiter sorry for sounding dumb, but where is example/tutorial?
18:20 NotFound spreiter: in the parrot source tree.
18:20 spreiter ah ok
18:21 NotFound examples, not example
18:23 spreiter found it
18:27 Ademan joined #parrot
18:27 Zaba joined #parrot
18:45 Ademan joined #parrot
19:21 Ademan joined #parrot
19:21 Tene pmichaud: HLLCompiler.pir tries to call new with the result of split(), but new_p_p expects a String pmc, not an Array
19:22 Andy joined #parrot
19:48 gmansi joined #parrot
19:52 Tene Hmm.
19:52 Tene PGE needs a way to specify the HLL we're inheriting from in:
19:52 Tene grammar cardinal::Grammar is PCT::Grammar;
19:52 Tene Right now that generates: $P0 = subclass 'PCT::Grammar', 'cardinal::Grammar'
19:53 Tene That dies in an HLL world, but this works:
19:53 Tene $P1 = get_root_global ['parrot'], 'PCT::Grammar'
19:53 Tene $P0 = subclass $P1, 'cardinal::Grammar'
19:54 Tene With that manual change in gen_grammar.pir, I now have --target=parse working with .HLL
19:54 Tene --target=past is still failing though, hmm...
20:05 Whiteknight joined #parrot
20:17 pmichaud Tene:  all of the PCT classes are in the 'parrot' HLL
20:17 pmichaud so they have to be imported into whatever HLL you're planning to use for the action grammar
20:17 Theory joined #parrot
20:18 pmichaud also, 'PCT::Grammar' probably needs to become ['PCT';'Grammar']
20:19 wknight8111 joined #parrot
20:21 Tene Oh, I should be importing things instead of grabbing them from 'parrot'?
20:21 Tene Interesting.
20:21 pmichaud well, that's the way I expect things to generally work.  It's basically the equivalent of saying "use PCT;"
20:21 pmichaud i.e., it imports the symbols into the namespace
20:21 Tene Huh, okay.
20:21 Tene Should PCT also do the same thing, or should pct get_root_global [ hllname ; ... ] ...?
20:22 pmichaud well, PCT is already in the parrot hll so it doesn't have to worry about it.
20:22 Tene When it's getting namespaces and classes for the language it's compiling
20:22 pmichaud when does PCT do that?
20:23 Tene top = get_hll_global parsegrammar_name, 'TOP'
20:23 Tene HLLCompiler.pir:350
20:23 pmichaud that's likely to become a method call.
20:23 Tene 35#, I guess.
20:23 Tene A method call on what?
20:23 pmichaud the parsegrammar
20:24 Tene Huh.  Okay.
20:24 dalek r30863 | julianalbo++ | trunk:
20:24 dalek : add a dirty implementation of escape_string to Mysql example module
20:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30863
20:24 pmichaud several things in HLLCompiler need a big refactor
20:24 pmichaud it was written before we had action grammars, and uses a design I disagree with
20:25 pmichaud (it was written before we had protoobjects, too)
20:26 pmichaud so, the "real" way it should work is that you provide the HLLCompiler with the protoobjects for the grammar and action grammar that you want to use, instead of string names.
20:26 pmichaud (In general I find using strings to identify classes to be highly suspect.)
20:26 Tene Rather.
20:29 Tene Looks like gen_grammar just uses subclass instead of P6metastuff
20:30 pmichaud right, that needs to change also.
20:30 pmichaud some items haven't converted to P6object yet :-)
20:34 Tene So does all of this need to come before HLL refactors?
20:34 pmichaud a lot of it does, yes.  or in conjunction with them.
20:35 pmichaud it's probably close to time to do some intensive work in a branch for this
20:35 pmichaud I worked on it on the plane to YAPC::EU, but found that I needed hll_map and a few other items like this first
20:36 moritz rakudo's docs/STATUS list anonymous classes as To do - is there a good reason not to move it to implemented?
20:36 pmichaud I think STATUS is out of date.  Yes, feel free to move it to "implemented"
20:37 pmichaud (as well as any other items you may happen to notice)
20:38 pmichaud afk, lunch
20:43 nopaste "tene" at 24.10.199.37 pasted "This seems to work for using P6object for PGE grammars" (15 lines) at http://nopaste.snit.ch/13989
21:31 pmichaud better is to get_root_global the P6meta object.
21:32 jonathan pmichaud: Any preference on days I Rakudo hack next week?
21:32 pmichaud any day should be good
21:32 jonathan (as in, during the next week)
21:32 jonathan OK.
21:33 pmichaud fridays (morning) tend to be a little on the busy side for me
21:33 jonathan I was thinking earlier in the week than that.
21:33 jonathan The RT queue has...so much stuff.
21:33 pmichaud yes, it does
21:33 jonathan Which isn't a bad thing.
21:33 pmichaud certainly plenty for us to work on.
21:34 pmichaud I'm expecting to do inline PIR in the next day or so
21:34 jonathan I'll probably divide my time between lazy lists branch and trying to resolve some of the RT tickets.
21:34 jonathan Oh, great. :-)
21:34 pmichaud that sounds like a good idea
21:34 pmichaud (phone call brb)
21:35 moritz http://nopaste.snit.ch/13991
21:35 moritz this implements parsing (and matching) of m/.../
21:35 moritz any objections?
21:35 pmichaud I see that it does parsing, but matching?
21:35 pmichaud also, does 'm' have to be followed by a slash?
21:36 moritz well, I could add an alternative | 'm' <quote_expression: :regex>
21:36 moritz but that would allow mbab as a regex
21:36 moritz which is not quite allowed
21:36 moritz (maching is automatically done right ;)
21:36 pmichaud m <.ws> <quote_expression: :regex>
21:36 NotFound I think a lot of tickets can be resumed in one: "Argument passing code is bad"
21:37 Tene pmichaud: right now HLLCompiler gets TOP, which is a method, and calls it with the source as the first param, which goes into self in TOP.  Should I assign the source to a new Grammar object constructed from the protoobject, and call TOP on that, then?
21:37 moritz pmichaud: doesn't your version allow m bab as a regex then?
21:38 pmichaud I think <quote_expression> won't accept just any ol character as a delimiter
21:38 Tene It won't.
21:38 * moritz tries
21:38 pmichaud Tene:  the syntax/semantics for constructing a new grammar match are still being worked out a little bit
21:38 pmichaud I don't know what TimToady has this week :-)
21:39 moritz with pmichaud's version: /rakudo -e '"a" ~~ m bab && say $/'
21:39 moritz output: a
21:39 Tene Oh, right.
21:39 Tene moritz: add a <before <[/[({]>>
21:39 Tene ocelot
21:40 pmichaud I'm not sure that "m bab"  is incorrect syntax.
21:40 * moritz is sure that if it's allowed, it's very weird ;)
21:41 pmichaud does q:regex have any restrictions on the delimiter?
21:41 pmichaud er, Q:regex
21:44 moritz I don't see any restriction in the specs
21:45 moritz STD.pm parses m bab as some kind of quote
21:45 pmichaud sure, since m is a quote construct
21:46 pmichaud quote:m in STD.pm
21:46 moritz so, should I use m <.ws> <quote_expression> then?
21:46 moritz (with :regex, that is)
21:47 pmichaud sure.
21:47 * moritz runs spectest_regression, and commits if successful
21:48 pmichaud and we need two separate alternatives -- one for <.before '/'> and one for 'm' <.ws>
21:48 moritz that's how I have it now
21:48 pmichaud I also wonder if unicode has advanced enough that we can remove the FIXME:unicode line above.  Might be worth a try.
21:49 pmichaud s/remove/uncomment/
21:49 * moritz tries
21:49 pmichaud I'd do them in separate steps, though.  one for 'm' and another for >>
21:49 pmichaud er, <<
21:49 moritz ok
21:49 NotFound pmichaud: I think unicode progress is waiting for the string pdd work.
21:50 pmichaud NotFound: PGE can handle unicode, though, as can Rakudo
21:50 NotFound pmichaud: and parrot... but not very well ATM.
21:50 pmichaud I think the blocker before was a minor issue in HLLCompiler or in PGE that may have been fixed
21:51 NotFound pmichaud: did you refer to an item I closed some two months ago?
21:51 * pmichaud tests xmodmap mappings:   «  »   ¢
21:54 pmichaud NotFound: no.
21:54 pmichaud I'm referring to some changes I made to PGE and HLLCompiler a couple of months ago. :-)
21:56 dalek r30864 | moritz++ | trunk:
21:56 dalek : [rakudo] parse m/.../ and similar regex forms. Closes RT #57346
21:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30864
21:56 moritz it doesn't compile when I uncomment the « line
21:56 moritz Illegal escape sequence no '}'
21:56 moritz on the perl6.pir -> perl6.pbc step
21:56 pmichaud okay, I'll look into it.
21:57 kid51 joined #parrot
22:14 kid51 cotto_home ping
22:21 bacek joined #parrot
22:23 Whiteknight joined #parrot
22:28 dalek r30865 | moritz++ | trunk:
22:28 dalek : [cage] make codetest a bit happier (copyright notice, coda)
22:28 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30865
22:30 dalek r30866 | moritz++ | trunk:
22:30 dalek : [cage] correct svn Id tag
22:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30866
22:38 dalek r30867 | moritz++ | trunk:
22:38 dalek : [rakudo] tools/autounfudge.pl: add --exclude options and exclude long running
22:38 dalek : and looping tests by default
22:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30867
22:43 cotto_home kid51: pong, even though you won't see it
22:56 cotto_home summon kid51
22:56 rdice joined #parrot
22:59 dalek r30868 | tene++ | trunk:
22:59 dalek : Use P6object to create the class for PGE Grammar classes.
23:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30868
23:00 dalek r30869 | tene++ | trunk:
23:00 dalek : [cardinal]
23:00 dalek : * Fix a grammar bug
23:00 dalek : * One more passing test file
23:00 dalek : * Update a couple of tests to use test.rb
23:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30869
23:09 TonyC joined #parrot
23:10 cotto_home NotFound, ping
23:10 nopaste "cotto_home" at 96.26.202.243 pasted "trying to compile Xlib.pir - im doin it rong" (3 lines) at http://nopaste.snit.ch/13995
23:11 tetragon joined #parrot
23:11 cotto_home what's the right way to do that?
23:11 purl i heard the right way to do that was on my gateway device, be it a router, a foonix firewall, etc.  If my client is also my gateway...
23:11 cotto_home no, the right way is <reply>
23:11 purl okay, cotto_home.
23:11 cotto_home botsnack
23:11 purl thanks cotto_home :)
23:12 cotto_home no, the right way to do that is <reply>
23:12 purl okay, cotto_home.
23:13 NotFound cotto_home: pong
23:15 cotto_home what's the right way to compile Xlib.pir?
23:15 NotFound cotto_home: looks like the -o option must be before the source.
23:16 NotFound I tried your way, and gives me same error.
23:16 cotto_home of course
23:16 cotto_home otherwise parrot thinks I'm trying to pass something to Xlib.pir
23:18 cotto_home do you mind if I add that to xlibtest.pir?
23:21 NotFound The command to compile the lib? Not a bad idea.
23:26 cotto_home done
23:27 dalek r30870 | julianalbo++ | trunk:
23:27 dalek : applied a modified version of mhelix patch in RT#58030 that solves several parameter passing problems
23:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30870
23:27 dalek r30871 | cotto++ | trunk:
23:27 dalek : [t] update t/pmc/hash.t to avoid deprecated non-$ register names
23:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30871
23:27 dalek r30872 | cotto++ | trunk:
23:27 dalek : [examples] add compilation instructions to xlibtest.pir
23:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30872
23:32 NotFound If someone have in mind some optional parameter problem, please check with r30870
23:33 NotFound (or later)
23:40 cotto_home NotFound, should #58030 be closed now that you've applied the patch, or is it just a temporary workaround?
23:41 NotFound cotto_home: must be temporary, but who knows... ;)
23:41 NotFound But don't close yet, wait at least to tomorrow.
23:42 NotFound I want to do some checks, and must go to bed now.
23:43 cotto_home It's yours to close.  I was just checking.
23:43 NotFound I like that patch, even if ugly :)
23:45 dalek r30873 | cotto++ | trunk:
23:45 dalek : [credits] add mhelix++ for #54860 fix
23:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30873
23:53 kid51 joined #parrot
23:55 kid51 cotto_home ping
23:56 TiMBuS joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced