Parrot 3.1.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: ?
Set by moderator on 20 February 2011.
00:11 Khisanth joined 00:17 Khisanth left
dalek rrot: c74194f | petdance++ | src/hash.c:
consting vars
00:21
rrot: 4629233 | petdance++ | src/pmc/hash.pmc:
consted a Hash * to get_next_hash, and propagated that up
whiteknight NotFound: that last ticket I had about the method calls is what I really need 00:28
but I also need $I0 = exists $P0[$P1] 00:29
I don't know if winxed will allow me to write that last one in ${ }
NotFound whiteknight: = is not supported, but you can use the non-sugared syntax 00:30
whiteknight I can do ${ exists i, p[k] }
?
or ${ exists i, p, k }? I don't know if the right opcode is generated with that last one 00:31
NotFound Ah, you mean the key. No, the [ ] interferes with winxed regular syntax.
So the problem is not multiline, but full PIR syntax? 00:32
whiteknight if winxed can do everything we need, it's not a real big deal. 00:34
just a "nice to have"
NotFound A exists operator is planned 00:35
whiteknight okay. exists is a major blocker for Rosella
that, method call syntax like I requested too
NotFound Regarding method call, see my comment on the Issue
whiteknight I saw that
I don't care what the syntax is, but it's very important that it be possible 00:36
NotFound Agree, I wasn't just figured a nice syntax until now. 00:37
whiteknight something like object.[pmc_or_string](...) 00:38
or object.{pmc_or_string}(...) 00:39
00:39 Khisanth joined
NotFound Yes, thinked about that, but looks unfamiliar. 00:40
whiteknight object.*pmc_or_string(...) 00:41
NotFound That's the idea.
Or even, expression with pmc or string result. 00:42
whiteknight a built-in would be just as good. call(obj, method, ...)
it really doesn't matter what it is. You're the designer 00:43
NotFound Yes, but adding modifiers support to builtins is a non trivial change.
whiteknight ok 00:44
like I said, whatever you decide is good
NotFound I'll ty a implementation tomorrow. 00:45
s/ty/try
00:46 Khisanth left 00:48 Khisanth joined
whiteknight awesome 00:48
00:53 kid51 joined 00:54 Khisanth left
dalek rrot/opsc_full_parse: 35bb7b6 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Fix generating of WRITE_BARRIER.
00:54
rrot/opsc_full_parse: 6bfb0ad | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Fix calltype of auto-generated goto_offset for :flow ops.
rrot/opsc_full_parse: f512c64 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Generate name as num-only for registers.
rrot/opsc_full_parse: 9138023 | bacek++ | compilers/opsc/src/Ops/ (2 files):
PASTing of cast expressions
rrot/opsc_full_parse: 3ff3792 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Don't insert ';' after Op. We don't need it here
bacek_at_work msg cotto make src/dynoplibs/io_ops.o works now in opsc_full_parse 01:06
aloha OK. I'll deliver the message.
01:11 kid51 is now known as kid51_at_dinner
cotto ~~ 01:12
dukeleto anybody know what this is about? pkgs.org/package/perl(Parrot::Op) 01:21
01:22 Khisanth joined
dalek nxed: r823 | NotFound++ | trunk/winxedst1.winxed:
operator exists. Temptative implementation, poorly tested
01:24
01:28 lopaway is now known as lopnor
sorear dukeleto: How do you mean? 01:29
cotto dukeleto, interesting. no idea who made those. 01:36
bacek_at_work cotto, stop slacking off! Finish bloody opsc compiler :) 01:47
whiteknight :) 01:48
bacek, the workmaster
bacek_at_work whiteknight, yeah... It's kind of my job description at $dayjob. "Get shit done" 01:50
cotto bacek_at_work, what'd be best to do atm? 01:51
bacek_at_work cotto, pasting of prefix/postfix ops. 01:52
cotto, try compiling of dynops. It fails on quite few unimplemented pasting/to_c functions.
01:52 kid51_at_dinner is now known as kid51
cotto I see a lot of prefix ops in the grammar that don't have actions. 01:53
What's O()?
bacek_at_work cotto, they are handled automatically. With ":pirop" hack they are handled in .to_c.
cotto, O<> is for precedence override. 01:54
cotto o
bacek_at_work and setting of :pirop
cotto The speed of perl6.vim makes me want to get a faster computer. 01:57
KaeseEs bacek_at_work: are you still looking for benchmarks for gne_gc? i should have some tuits on tuesday after midterms and i'm itching to do something useful 02:00
*gen_gc
bacek_at_work KaeseEs, just benchmark master. It's all merged. 02:03
KaeseEs oic. any sort of contrived situations specifically that could use coverage, or just general programs? 02:07
bacek_at_work KaeseEs, general programs will be good start. You can configure parrot with --gc=ms2 to compare 2 gcs. 02:08
dalek rrot/opsc_full_parse: 81301fa | bacek++ | t/compilers/opsc/03-past.t:
Fix test for proper check of op body munching.
02:10
rrot: 93d756a | petdance++ | src/gc/gc_ms.c:
#if out contained_in_attr_pool()
02:20
dukeleto mmmm, body munching 02:22
02:22 don-o joined
don-o any ideas on how to fix this build error for 3.1.0 (does the same on git master) with va_args type? gist.github.com/846841 02:23
cotto dukeleto, not nearly as fun as it sounds 02:24
02:25 don-o is now known as donpdonp
donpdonp hi dukeleto 02:25
dukeleto donpdonp: hey there!
donpdonp: what is your uname -a ? 02:26
donpdonp Linux tower.donpark.org 2.6.37-rc3-via #1 Sun Nov 28 23:28:56 PST 2010 i686 VIA Samuel 2 CentaurHauls GNU/Linux
dukeleto cotto: that looks like a serious Configure.pl bug
cotto: reported by donpdonp gist.github.com/846841 02:27
donpdonp: what is your linux distro?
donpdonp its a slightly odd processor. its one instruction away from a 686, so gcc needs a special -march=c3 flag but that problem shows itself with an 'illegal instruction'
dukeleto: an extremely old gentoo setup
dukeleto donpdonp: interesante 02:28
donpdonp: i gotta go to dinner, but i think this bug warrants a new trac ticket
KaeseEs i think there's another s in that
donpdonp dukeleto: ok cool
dukeleto donpdonp: trac.parrot.org/parrot/ticket/2031 02:29
donpdonp: feel free to email parrot-dev and ask give a link to the trac ticket. kid51++ is the mant you probably want to talk to 02:30
s/mant/man/
KaeseEs s/man/manta ray/
dukeleto .nom($dinner)
donpdonp dukeleto: great thx. bon appetit 02:31
dalek rrot: 1922200 | petdance++ | src/gc/gc_ms2.c:
shimmed out an unused arg
02:32
rrot: 8597c2e | petdance++ | src/gc/mark_sweep.c:
removed unused arg from new_bufferlike_pool()
rrot/opsc_full_parse: 53e5cda | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm:
Fix parsing of postfix ++/--
02:33
rrot/opsc_full_parse: 87db441 | bacek++ | compilers/opsc/src/Ops/ (2 files):
Fix parsing of '.' and '->
02:38 whiteknight left
dalek rrot/opsc_full_parse: be842df | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Don't "flatten" function call args. It's wrong. We are loosing infix ops doing it.
02:40
TT #2031 created by dukeleto++: Configure.pl bug in Gentoo 02:41
TT #2031: trac.parrot.org/parrot/ticket/2031
02:43 Khisanth left, donpdonp left 02:49 Khisanth joined
cotto what p6regex for "a list of zero or more <foo> separated by ',' "? 02:50
nm 02:51
bacek_at_work, working on getting INTVAL a, b, c; to work 02:52
bacek_at_work cotto, it doesn't work???
ah, yes... 02:53
cotto nope
bacek_at_work rule declarator
cotto yes 02:54
bacek_at_work put something like <variable=.indent> ** ','
cotto I have it parsing in a way that may or may not be correct
dalek rrot: 2e415a4 | jkeenan++ | src/pmc/ (2 files):
[codingstd] Break too long lines in two .pmc files.
02:56
rrot: 6d5684e | jkeenan++ | src/gc/ (3 files):
Merge branch 'master' of git@github.com:parrot/parrot
cotto looks like it's probably correct. now on to the same thing in for loops 02:58
dalek rrot/opsc_full_parse: a7c1432 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm:
Add 'else' to keywords and fix parsing of statement_control
03:02
rrot/opsc_full_parse: df5618e | bacek++ | compilers/opsc/src/Ops/Op.pm:
Don't wrap comma-separated expressions into ().
bacek_at_work cotto, I fixed sym<for>. Just few minutes ago :)
rrot/opsc_full_parse: ad768ac | bacek++ | compilers/opsc/src/Ops/Op.pm:
Don't emit ';' after PAST::Block
bacek_at_work cotto, pushed :)
cotto wfm 03:04
me too 03:06
dalek rrot/opsc_full_parse: 6cf25e0 | cotto++ | compilers/opsc/src/Ops/Compiler/ (4 files):
parse and generate past for comma-separated declarations
cotto d'oh 03:07
dalek rrot/opsc_full_parse: d804a59 | cotto++ | compilers/opsc/src/Ops/Compiler/. (2 files):
remove swp files
03:08
bacek_at_work cotto, yeah... I don't think that swp files are really useful :)
cotto now you can steal my undo history
;) 03:09
atrodo I have come to a realization today. I have too many yaks hanging around 03:15
bacek_at_work cotto, I think Action.declarator should use Stmts not Block. 03:18
cotto, Blocks are wrapped into {}
cotto ok 03:21
dalek rrot/opsc_full_parse: 4b5bf71 | cotto++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
use statements instead of blocks for declarations
03:22
cotto bacek_at_work, thanks for noticing 03:24
bacek_at_work cotto, btw, can you also flatten $<declarator> in Actions.blockoid. Otherwise we put more ; then required 03:26
cotto bacek_at_work, is a separate action for init needed to deal with the changes you made to for loops? 03:27
dalek rrot: fb59b7d | petdance++ | src/pmc/ma (2 files):
consting
03:32
bacek_at_work cotto, erm... what? 03:35
cotto nm. I thought you updated the for loop to work with for (i = 0, m = 0; i < w; i++) 03:37
That's what I thought you were talking about when you said you fixed sym<for>
bacek_at_work cotto, yes. I did fix it. 03:44
cotto Where does EXPR come from/ 03:45
?
03:47 kid51 left
Tene cotto: EXPR is the OPP 03:48
operator parser
bacek_at_work cotto, from HLL::Grammar
Tene it's the builtin that takes your terms and infixes and shit and builds the expression tree with the right nesting and associativity, etc. 03:49
dalek rrot/opsc_full_parse: 891c290 | cotto++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
fix sym<for> and sym<while> actions
03:57
03:57 lateau joined
cotto Tene, so it's magic. Got it. 03:57
bit.ops parses now! 03:59
obscure and sys still explode 04:00
looks like it chokes on ternary 04:02
sorear cotto: EXPR comes from src/HLL/Grammar.pir in the nqp-rx repo 04:04
cotto: every grammar declaration in (NQ)P is fudged to have an implicit "is Grammar" superclass
this is, in fact, all that distinguishes grammars from classes
Grammar and HLL::Grammar have quite a few other ones, including several that *are* pretty magic 04:05
but EXPR isn't one of them; if speed were no object, EXPR could be written in NQP easily enough
04:09 [hudnix] left
dalek rrot: f1c9ca5 | petdance++ | src/pmc/ (4 files):
consting pointers and localizing temp vars
04:17
rrot: 548b113 | petdance++ | src/pmc/op (2 files):
consting pointers and localizing temp vars
04:31 bubaflub left
dalek TT #2029 closed by plobsing++: new 'structview' PMC does not work on bigendian systems 04:36
TT #2029: trac.parrot.org/parrot/ticket/2029
rrot: e74dffa | petdance++ | src/pmc/orderedhash.pmc:
consting pointers
04:55
rrot: 1048779 | petdance++ | src/pmc/packfile (9 files):
lots of consting
04:59 lateau left
dalek rrot/opsc_full_parse: 692906a | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Flatten declarators in Actions.blockoid to prevent emitting ';'
05:03
bacek_at_work cotto, do you mean "parsing" of "emitting of C"?
cotto, because it parses on my box
cotto bacek_at_work, I mean that ops2c.nqp chokes on it
my mistake 05:04
dalek rrot: a39ea75 | util++ | src/pmc.c:
Fix `make headerizer` warning: "Returns a pointer, but no PARROT_CAN(NOT)_RETURN_NULL macro found"
05:06
cotto bacek_at_work, ping 05:34
bacek_at_work, unping 05:36
dalek rrot: f6aff2d | petdance++ | src/pmc/parrotinterpreter.pmc:
consting. inlined some CONST_STRINGS
05:37
rrot: 5c9a257 | petdance++ | src/pmc.c:
Merge branch 'master' of github.com:parrot/parrot
rrot: 4fb7780 | petdance++ | include/parrot/pmc.h:
new header from "make headerizer"
bacek_at_work cotto, unpong :) 05:41
dalek rrot: 10377a1 | petdance++ | src/pmc/pmcproxy.pmc:
lots of consting, and fixed some bizarre formatting
05:48 lopnor is now known as lopaway
cotto bacek_at_work, what'd be the right way to make the ternary operator work? 05:53
bacek_at_work cotto, git pull 05:54
dalek rrot/opsc_full_parse: 0c11de2 | bacek++ | compilers/opsc/src/Ops/ (2 files):
Made ternary operator works
cotto lulz
double lulz. I was thinking something similar to what you did. 05:55
bacek_at_work, sys.ops still doesn't work. Are you fixing it or should I? 05:57
bacek_at_work cotto, go for it 05:58
cotto woot
bacek_at_work cotto, "INTVAL saved_var1 = a, saved_var2 = b;" is wrongly parsed as "comma separated EXPR" 06:05
06:06 don-o joined
cotto bacek_at_work, ok. Are you fixing it or should I? 06:07
bacek_at_work cotto, if you have time - fix it. 06:08
cotto wfm
06:10 contingencyplan left 06:12 contingencyplan joined 06:17 rurban_ joined 06:20 rurban left, rurban_ is now known as rurban 06:23 theory left
dukeleto this seems to be somewhat out of date: secure.wikimedia.org/wikibooks/en/...lt-In_PMCs 06:31
bacek_at_work dukeleto, by few years at least. 06:36
dalek rrot/opsc_full_parse: 29df582 | bacek++ | compilers/opsc/src/Ops/ (3 files):
Switch 'break' and 'continue' to be statement_control
06:37
cotto bacek_at_work, declarator_init cheats pretty badly. Is there an easy way to make it work or should I break out k&r? 06:47
bacek_at_work cotto, how badly it cheats? 06:48
cotto bacek_at_work, It looks for full statements when it should just be looking for an rvalue. 06:49
bacek_at_work cotto, oh... 06:50
cotto yeah
bacek_at_work hmm... We have to disable infix:sym<,> somehow.
during parsing of it. Or play with precedence.
Someone like sorear can probably help. 06:51
or masak
cotto is that better than just splitting out rvalues? 06:52
sorear what you want is the $preclim argument to EXPR
dalek rrot/opsc_full_parse: a730db9 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Emitting pasttype<macro_if>
rrot/opsc_full_parse: 0b3019f | bacek++ | compilers/opsc/src/Ops/Op.pm:
Emotting empty statementless labels
bacek_at_work sorear, '$preclim'???
sorear bacek_at_work: it sets a minium precedence for used operators 06:53
if you set it one higher than infix:<,>, then infix:<,> will not be used
bacek_at_work sorear, like <EXPR('i=')> ?
cotto that sounds like it'd involve potentially surprising side-effects
sorear bacek_at_work: in STDese we do it <EXPR(%additive)>; haven't used nqp recently enough, but 'i=' looks reasonable 06:54
bacek_at_work Yay! It works! 06:55
cotto woot, I guess
dalek rrot/opsc_full_parse: 10a2a6b | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm:
Fix declarator to avoid infix:sym<,> expressions. sorear++
06:56
cotto bacek_at_work, it doesn't work for INTVAL i = 0, j = 0; 06:59
it generates declarations without initializers 07:00
07:03 Andy left
cotto fixing... 07:07
bacek_at_work ouch 07:08
dalek rrot/opsc_full_parse: 67245f8 | cotto++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
fix initializer action
07:14
cotto looks like switches with fallthrough work now too 07:15
bacek++
looks like sys.ops generates some bad code, but a viable build is closer! 07:16
dalek rrot/opsc_full_parse: 1ce756e | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Fix PASTing of #ifdef
07:24
rrot/opsc_full_parse: 66cef09 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Wrap break and continue into Stmts.
rrot/opsc_full_parse: ce30a80 | bacek++ | compilers/opsc/src/Ops/ (2 files):
Partially fix handling of type_declarator as call args
cotto bacek_at_work, By the time I find the broken code, you've fixed it. 07:25
bacek_at_work holley schitt!
it compiles!
and generates code for all dynops!!!
(probably broken, but still) 07:26
cotto woot
bacek_at_work WOW
cotto are you going to fix #define too?
bacek_at_work prove t/dynops
All tests successful.
Files=14, Tests=632, 1 wallclock secs ( 0.09 usr 0.03 sys + 0.60 cusr 0.15 csys = 0.87 CPU)
Result: PASS
cotto, go for it.
cotto bacek++
deal
bacek_at_work ops2c --core produces bad code. Sigh. 07:27
cotto For a happy moment I forgot about all the complex parts of #define 07:29
bacek_at_work cotto, don't try to implement multi-line parsing (yet). Just implement it in same way as ifdef 07:30
cotto right
C is a small language, but I wouldn't want to paint it. 07:31
dalek rrot: bc5a4ed | mikehh++ | src/pmc/ (2 files):
fix codetest failures - linelength
07:33
rrot/opsc_full_parse: b24b3f4 | bacek++ | compilers/opsc/src/Ops/ (2 files):
Preserve wrapping of EXPR into ().
07:36
mikehh why does the CONST_STRING macro not allow line breaks? It messes up our coding standards regarding line length
bacek_at_work mikehh, because of how it works. 07:38
mikehh, basically we create a hash of const strings based on #line.
cotto mikehh, that macro is based on the line number where the ... what bacek said
mikehh then it needs to be sorted out somehow - I HATE C macros 07:39
bacek_at_work mikehh, do tell! :)
cotto so powerful, yet so stupid 07:40
mikehh I have had more problems understanding and debugging code with macros than anything else 07:41
dalek rrot/leto/embed_grant: f06bb72 | dukeleto++ | t/src/extend_vtable.t:
[TT #2026] Hopefully fix intermittently failing test, which assumed positive hashvalues
07:43
rrot/leto/embed_grant: f37084a | dukeleto++ | t/src/extend_vtable.t:
[t] Parrot_PMC_add_vtable_override
cotto mikehh, there's a very good reason why they're capitalized by convention 07:44
mikehh cotto: do tell :-} 07:46
one of the main reasons I started doing most of my coding in c++ rather than c about 20 years ago 07:49
mind you a different story these days 07:50
cotto If you don't mind gcc-only extensions, you can almost pretend it's a high-level extension. 07:54
er, language
cotto tries to bootstrap 07:57
nope 07:58
bacek_at_work cotto, check find_codepoints. 08:00
we generate bad parse/past tree for it... 08:01
dalek rrot/opsc_full_parse: 849303f | cotto++ | compilers/opsc/src/Ops/ (2 files):
make #define generate less-incorrect code
cotto it'll have to be tomorrow 08:02
bacek_at_work it's always tomorrow somewhere...
bloody ifdefs...
We can't parse them semantically. 08:03
cotto time to reimplement cpp? 08:07
bacek_at_work no way! 08:09
it has same problems...
we have to expand macros during parsing.
Before semantic analyze.
Or somehow continue from same point after seeing something like '#ifdef'. 08:10
anyway 08:11
time to go home
cotto 95/79 08:12
aloha 1.20253164556962
cotto ops2c in branch is slower than in master by ~20% 08:13
aloha, clock? 08:21
aloha cotto: LAX: Mon, 00:21 PST / CHI: Mon, 02:21 CST / NYC: Mon, 03:21 EST / UTC: Mon, 08:21 UTC / LON: Mon, 08:21 GMT / BER: Mon, 09:21 CET / TOK: Mon, 17:21 JST / SYD: Mon, 19:21 EST
08:32 fperrad joined
dalek Heuristic branch merge: pushed 29 commits to parrot/gerd/JSON_nqp by gerd 08:36
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (PASS but would not upload) fulltest) at 3_1_0-417-gbc5a4ed - Ubuntu 10.10 i386 (g++-4.5) 08:42
bacek ~~ 09:12
dalek rrot/opsc_full_parse: ed30fe0 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Style change: use map instead of for.
rrot/opsc_full_parse: ea96fda | bacek++ | compilers/opsc/src/Ops/Compiler/ (2 files):
Extract blockoid content
rrot/opsc_full_parse: c6f731c | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm:
Use mixed_content for guts of #if and #ifdef.

It's not semantcially correct. We have to preserve state of Parser _before_ C macro and continue from it. But at least it gives us proper parsing of find_codepoint definition.
rrot/opsc_full_parse: f828697 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
PASTing of concatenate_strings
09:24
bacek cotto, ping :)
msg cotto as of f828697 opsc_full_parse can bootstrap itself :) 09:26
aloha OK. I'll deliver the message.
10:14 contingencyplan left 10:33 JimmyZ joined 11:06 ShaneC1 joined 11:09 ShaneC left 11:15 JimmyZ left
dalek rrot/opsc_full_parse: fafca72 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Use args instead of arg_types to calculate op size.
11:44
rrot/opsc_full_parse: b41f1c4 | bacek++ | compilers/opsc/src/Ops/Compiler/ (2 files):
Split generation of Ops::Op into 2 stages.

It will simplify handling of OPSIZE and JUMPs.
rrot/opsc_full_parse: a92c6ed | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Rework handling of op jumps.
rrot/opsc_full_parse: a3f5157 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Rework handling of OPSIZE macro
rrot/opsc_full_parse: 6d86514 | bacek++ | compilers/opsc/src/Ops/Op.pm:
Remove rewriting of OPSIZE macro. We don't generate it anymore.
rrot/opsc_full_parse: cd04b2e | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Fix generating OP.jump
rrot/opsc_full_parse: 2deda87 | bacek++ | / (142 files):
Merge branch 'master' into opsc_full_parse
11:50
12:10 cotto left
dalek rrot/opsc_full_parse: 63f23cf | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
Put write barrier into proper place
12:19
rrot/opsc_full_parse: 4ad5a5d | bacek++ | src/ops/core_ops.c:
Reboostrap ops!!!

We can do it now.
12:23
12:53 JimmyZ joined
dalek rrot/opsc_full_parse: 84a3187 | bacek++ | compilers/opsc/src/Ops/Compiler/ (2 files):
Rework handling of arglist to avoid interfere with infix<,>
12:54
rrot/opsc_full_parse: 004d6f0 | bacek++ | t/compilers/opsc/08-emitter.t:
Fix test.
bacek msg cotto opsc_full_parse if "make test clean" now. Can you add tests/implementation for "do {} while" handling? This is last bit for branch. 12:55
aloha OK. I'll deliver the message.
bacek afk # bed tima
s/time/time/
13:10 mikehh left
Coke . 13:27
cotto_work: pong. 13:30
13:35 mikehh joined 13:37 JimmyZ left 13:46 whiteknight joined
whiteknight good morning, #parrot 13:52
tadzik good morning whiteknight 14:08
whiteknight hello tadzik. how are you doing today? 14:09
tadzik not bad. On my lectures at the moment 14:10
no hackery yet today :)
whiteknight which lecture?
tadzik Probabilistic Methods 14:11
on a break atm, otherwise I'd listen
moritz that's what they all say :-)
tadzik hey, that one's actually interesting :)
dalek TT #2032 created by worr++: Small patch to add get_effective_user_id to parrot
TT #2032: trac.parrot.org/parrot/ticket/2032
tadzik whiteknight: seen the Close response from Austin? 14:12
14:14 plobsing left
whiteknight tadzik: no 14:16
tadzik: I would like to
tadzik I'm pretty disconnected from Parrot and Close 14:17
right now. If you feel like you can get something going with Close,
please do.
14:17 rurban_ joined
whiteknight okay, that's the kind of thing I was hoping he would say 14:18
tadzik did you?
whiteknight did I what?
tadzik I was hoping he'd say "Oh, Close! Yeah, I actually moved that to git and got 300 unpushed commits, wanna?" YP 14:19
:P
14:19 hudnix joined
tadzik lecture & 14:19
14:20 rurban left, rurban_ is now known as rurban
whiteknight msg NotFound plumage seems to have problems installing winxed. It doesn't know how to execute the winxed test suite and all tests appear to fail. I can install it if I use "--ignore-fail=test" 14:22
aloha OK. I'll deliver the message.
NotFound whiteknight: ??? Who added the test option to the installer? 14:23
It was deliberately omitted.
Of course it can't execute winxed before winxed gets installed. 14:24
dalek nxed: r824 | NotFound++ | trunk/winxedst1.winxed:
Operator .* for indirect method call.

space to prevent future changes.
14:33
nxed: r825 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable files
umage: 1c5dc51 | NotFound++ | plumage/metadata/winxed.json:
drop test from winxed metadata, winxed setup is not yet ready for it
14:36
whiteknight NotFound++ 14:37
NotFound: how to use the new syntax, object.*method(...)? 14:43
NotFound whiteknight: is simple cases, like a variable name, yes. For something more elaborated: object.*(expression)(..) 14:44
Parenthesis to prevent changes of precedence rules. 14:45
whiteknight oh, nice 14:53
14:58 JimmyZ joined 14:59 cotto joined
cotto ~~ 15:02
Coke, do you have an admin bit on lists.parrot.org? dukeleto wants to make a list for jitterbug to yell at when parrot or an hll breaks. 15:03
cotto goes to work 15:05
Coke cotto: I have admin on the existing lists. Pretty sure we ask osu for creating new lists. 15:09
(admin on existing lists == shared password which I thought allison and I had already dumped on someone)
15:11 Andy joined
dalek nxed: r826 | NotFound++ | trunk/winxed_installed.winxed:
half support for -o option in installable driver, Issue 19
15:17
nxed: r827 | NotFound++ | trunk/pir/winxed_installed.pir:
update generated pir for installable driver
15:23
15:27 bluescreen joined
whiteknight NotFound: does winxed support [opt_flag]? 15:31
NotFound whiteknight: yes 15:32
You need to set the int argument type, it doesn't add it automatically. 15:35
15:44 contingencyplan joined 15:46 plobsing joined
cotto_work ~~ 15:47
Coke: ok
15:51 theory joined
cotto_work Coke: whiteknight also has an admin bit for lists.parrot.org iirc 15:53
15:59 JimmyZ left 16:18 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 16:20 davidfetter left
cotto_work dukeleto: ping 16:33
16:35 bluescreen left
Andy So who runs taptinder? 16:50
moritz mj41 I think 16:51
16:52 don-o is now known as donpdonp
mj41 Andy: here 16:53
Andy First: NICE JOB 16:54
I'm amazed at the thoroughness.
Second: any way we can see which compilers are getting exercised? 16:55
or are they all GCC?
whiteknight is there any way from PIR to determine whether a file exists? 16:57
dalek TT #2030 closed by plobsing++: t/pmc/structview.t fails with memory PANIC
TT #2030: trac.parrot.org/parrot/ticket/2030
plobsing whiteknight: stat? 16:58
jnthn I'm sure there's a way, because I'm sure Rakudo implements :e
I think it's stat on the...OS PMC iirc.
plobsing there's io_ops:stat and OS.stat 16:59
whiteknight I'm doing "os.stat(filename)", and it prints a message "stat failed: No such file or directory" to stderr and exits Parrot
moritz pir::stat__isi($path, 0) 17:00
mj41 Andy: Only here tt.taptinder.org/cwm/machine gist.github.com/798223 (manually) ... auto is on todo list github.com/mj41/TapTinder/issues#issue/34
Andy Seems to me that compiler is/should be separate from machine. 17:01
I have multiple GCCs, for instance. 17:02
and CLANG
and...
mj41 Andy: There is also perl Configure.pl output tt.taptinder.org/cmdinfo/38281 -> tt.taptinder.org/file/cmdout/38281.txt for each run.
Andy: I know. It should be linked to job runs ... tt.taptinder.org/dbdoc/cluster-png/...ssions.png .... msjobp table probably. 17:05
whiteknight moritz++ That works. Thanks
NotFound: ping 17:06
NotFound whiteknight: pong 17:07
whiteknight NotFound: in winxed, how do I do the equivalent of ".loadlib 'io_ops'"
mj41 Andy: There is irc://irc.freenode.org/taptinder
17:08 dmalcolm joined
Andy You've pretty much answered everything. 17:08
whiteknight NotFound: I tried $load "io_ops", but that doesn't work. It generates a load_bytecode instruction, not a .loadlib directive
mj41 Andy: Ok. I hope you want commit bit :-). 17:10
Andy Hah.
Like I don't have enough to work on. :-)
I really need to start cranking on ack 2.0 17:12
NotFound whiteknight: using extern generates a .loadlib, but I'm not tested with op libs. 17:13
plobsing NotFound: you have a typo in an error message: "nmaespace" 17:14
NotFound whiteknight: yeah, that's one of my favourite typos. 17:15
whiteknight NotFound: "using extern io_ops" generates the code "load_bytecode 'io_ops.pbc'". Doesn't do .loadlib
mj41 recruiting - my new word from en.wikipedia.org/wiki/Incandescence_%28novel%29 :-)
plobsing whiteknight: using extern 'io_ops' seems to work for me. inside a namespace, it generates load_bytecode though. 17:16
NotFound whiteknight: it should be at namespace scope, inside a function works different,
dalek rrot/opsc_full_parse: 3def685 | cotto++ | compilers/opsc/src/Ops/ (3 files):
[opsc] add support for do-while loops
17:17
whiteknight ah, gotcha. Yes, it works now
NotFound I think is time to add some directive and deprecate some tricks from early times.
cotto_work Translating C to C is fun. 17:20
atrodo c2c++ 17:22
or is it ctoc? I can never remember when to use 2 vs to
17:26 plobsing left 17:28 plobsing joined
Andy Is there some magic to get t/library/pcre.t to find my libpcre? 17:30
It's installed, but that test always fails.
Coke Andy: ISTR there's a ticket for the fact that that test is not using the same method configure does to find pcre. 17:31
dalek rrot: 155d9b3 | petdance++ | src/pmc/role.pmc:
consting. Hoisting up repeated CONST_STRING calls.
Andy Well someone should fix it! 17:32
Coke does configure report that it was found, OOC?
Andy At my whim!
double-checking.
I don't get any errors about it NOT being found.
Coke ... odd. parrot_config --dump | ack pcre doesn't show anything helpful. 17:34
dalek nxed: r828 | NotFound++ | trunk/winxedst1.winxed:
fix typo in error message. whiteknight++
17:36
17:38 lucian joined
NotFound "Perl6 at the very least needs to be able to get the effective user id as well as the real user id of the running process" Why? 17:38
sorear $*EUID
spelled $> in Perl5 emulation mode 17:39
NotFound What does that in non-unixy environments? 17:41
sorear dunno, perlport or perlPLATFORM should say 17:42
whiteknight I assume it does nothing helpful on windows
the patch just returns 0
cotto_work sees to be what perl 5 on windows does 17:43
sorear wow, PL_delaymagic is evil... (looking at how Perl 5 handles ($>,$<) = ($<,$>) from the documentation)
NotFound I'm not sure if such platform specifics should be fully supported in core, maybe nci is more appropiate. 17:45
plobsing but most of what makes Perl 5 so useful is the easy access to Unix 17:46
dalek rrot: 74882a2 | petdance++ | src/pmc/scalar.pmc:
consting
17:47
rrot: 82f841a | petdance++ | src/pmc/scheduler.pmc:
consting, and hoisted a CONST_STRING
NotFound plobsing: I mean core parrot, core of languages can predefine what they want.
And implement it via NCI.
plobsing ah, that I fully endorse 17:48
but NCI? really? the main guy on that writes crap code. 17:49
NotFound I don't think that functions will be used so frequently to need highly optimized code. 17:51
Main guy on what? 17:54
plobsing I'm the main guy on NCI. 17:55
at least in my own mind.
NotFound Ah, I tought you were talking about some rakudo way for nci. 17:56
Coke NotFound: I'd buy that, except that tcl needs that too, and I bet several other languages do also. So if it's not core, it's not something all HLL authors should have to write from scratch.
cotto_work plobsing: I aspire to your level of crappiness. 17:57
;)
NotFound Coke: in that case I think we should define a consistent behaviour, not just "TODO in windows"
plobsing Coke: we should provide a library, possibly through plumage. 17:58
NotFound In fact, skipping the test looks wrong to me. If it can be used, it should be tested, even if the result is ignored.
sorear To what extent do we want plumage to be mandatory? 18:02
whiteknight sorear: good question 18:04
18:04 bluescreen joined
NotFound I don't think providing things is mandatory. If some HLL wants to do some functionality already provided by some module in its own way, it can do. 18:05
Providing parrot core ways for anything any HLL may need in any platform is a way to maintenance nightmares. 18:06
cotto_work +1 18:07
We should support the common case and make the corner cases possible.
sorear Where do you draw the line? Why not just have Parrot be "a runloop and a GC" and everything else in Plumage? (I think we call that M1 these days?)
18:08 ShaneC1 left
plobsing sorear: I tend towards that extreme. Kitchen-sink parrot is not my ideal. 18:09
but I'd draw the line at "enough to make plumage run"
NotFound sorear: that's the reason of my comments, trying to draw some line.
dalek rrot: dbbf609 | petdance++ | src/pmc/sock (2 files):
lots of consting
18:10
NotFound The line can't be "what some rakudo guy ask lies inside"
cotto_work the mythical Sock pmc
plobsing cotto_work: it goes on the Foot PMC.
cotto_work helpful for bootstrapping
plobsing Socket PMC, as a core PMC is another example of something that might be better as a library (possibly included with core, but not always loaded). 18:11
cotto_work The past approach has been to throw everything in core. How far away to move from that is an important question. 18:12
(If I had a good answer, I'd say that instead of calling the question important.) 18:13
NotFound cotto_work: yes, but as "everything" grwos that approach gets worse. 18:14
s/grwos/grows
And it seems that we are approaching the point of being asked for all posix. 18:15
cotto_work plobsing: do you have any thoughts on what kind of atoms M0 would need for ffi?
plobsing cotto_work: my opinion is that M0 shouldn't have the ffi. At least not fully. 18:16
cotto_work plobsing: I'm not saying it should have a full-fledged ffi, but it will need enough primitives to build an ffi out of. 18:17
Those primitives are what I'm thinking about.
plobsing it needs some way to compile native functions into static calls. else the unecessary indirection in (eg: GC) will pale in comparison.
I'm not sure how to work that into the bytecode you're designing. Possibly a "compilation context" with a table of functions which get static calls. 18:18
18:26 plobsing left 18:27 dcolish joined
dcolish dukeleto: hey we missed you on saturday! 18:28
18:30 ShaneC joined 18:39 plobsing joined 18:41 preflex left, lopaway is now known as lopnor 18:44 preflex joined
dcolish I can't really say how nice it is to have a project this complex that I can just checkout, build in under 5 minutes and pass all tests. you guys rock! 18:49
plobsing dcolish: want to be a part of the awesome? 18:50
dcolish i think i do!
i've been working on pypy for a few months now and i'm just super frustrated by it
i want a good vm toolchain, that works reliably on osx and which i can use to implement python and other languages 18:51
plobsing hey, what do you know! we're currently looking for python implementers.
dcolish haha
sorear we have no shortage of Perl implementor 18:52
dcolish yeah i was hoping to talk with dukeleto this weekend about it at the portland python sprints
i am a terrible with perl but kickass with python 18:53
plobsing sorear: or so it would seem. the reality is that core Rakudo has a very low bus number (it is growing though).
dcolish i say count me in, i'm tired of only having one choice in the python world of implementations
18:53 lopnor is now known as lopaway
particle this bird could use a good ass-kicking from a python 18:53
sorear don't forget punie, ponie, and nqp 18:54
dcolish i know a good number of parrot devs are in portland, do they usually hack on it at the perlmongers group on thursdays?
sorear although arguably the first two have bus numbers of 0
whiteknight dcolish: you should also talk to lucian, another one of our pro-python coders. He's been talking about implementing some version of python on Parrot 18:55
sorear dcolish: I am a Python outsider; I thought you already had ~4?
whiteknight I think lucian was interested in implementing a python subset compiler, to help bootstrap a full compiler
sorear pypy, psyco, cython, jython, ...
lucian whiteknight: i sort of gave up on that, i'll probably use winxed 18:56
whiteknight lucian: okay, that's fine too. I've been using winxed for a lot of stuff and it's not bad
lucian sorear: and only two of those are python implementations. but there are plenty more 18:57
dcolish: any particular reason you're disillusioned with pypy?
sorear lucian: which two arent? 18:58
lucian sorear: cython, psyco
psyco is just a jit for CPython, cython is similar, but not exactly python 18:59
sorear ah I had CPython and Cython confused
lucian there's also ironpython, hotpy, py-cl (the common lisp thing), etc
i see. the naming wasn't terribly inspired
dcolish: just read the backlog, you dislike pypy's build times? 19:01
lucian thinks PyPy is "the right way" to implement a python vm
dukeleto dcolish: i wanted to go to the python sprint stuff, but I am moving to a new house 19:03
particle i'm shocked that there's more than one way to implement a python vm ;)
dukeleto dcolish: also, welcome to #parrot !
rurban I also think PyPy is the best, theoretically 19:04
lucian particle: to be precise, the manifesto says "only one *obvious* way to do it"
dalek nxed: r829 | NotFound++ | trunk/winxedst1.winxed:
new directive intended to replace (ab)use of namespace level 'using extern'
19:06
NotFound Uh, bash eat the directive name. 19:07
sorear opbots, names 19:08
lucian dislikes bash
cotto_work particle++
plobsing lucian: what do you prefer? zsh? 19:09
lucian plobsing: to some extent, fish
NotFound cmd.exe?
command.com?
plobsing csh?
lucian fish
try it, it's nice
plobsing I did. I'll keep my zsh, thanks. 19:10
lucian however, i'm generally annoyed that shells and programming languages are so separate
i keep postponing trying zsh
sorear tclsh much?
lucian sorear: that is interesting, yes
lucian has dinner
plobsing always liked the idea of zoid, but never bothered to try it for more than 5 minutes 19:11
NotFound Someone told me there was a sort of Doom sh, where you shot at processes to kill them. 19:13
cotto_work NotFound: psDoom 19:14
plobsing is init the final boss?
PerlJam NotFound: There used to be an old X game where each process was represented as a bug that wandered around your screen and you could smash them with a hammer.
donpdonp the BFG must be 'killall'
atrodo I always loved psDoom 19:15
dcolish lucian: I'm mainly frustrated by the complexity of the toolchain 19:17
plobsing psDoom - you'll never look at a forkbomb the same way again
lucian dcolish: then you'll love parrot, there's no toolchain to speak of :)
lucian is exaggerating
dcolish i've been trying very hard to get familiar with it and make osx a better supported platform, but i keep getting mixed messages about that goal
lucian dcolish: the message i got was "do it yourself" 19:18
dcolish wrt to osx on pypy?
lucian yep
dcolish yeah me too, its very disheartening when i've been working so hard to make it happen
lucian dcolish: although i find that fair enough, the hardware for osx is silly expensive 19:19
cotto_work laptops aren't bad 19:20
dcolish compared to a decent thinkpad, they're about the same
lucian they're expensive because you need special hardware, mostl
y
dcolish also, i already have the hw and enough knowledge to do the code
and i've actually written some modules in their lower level system, but i dont get good feedback and i have to fight for anyone to care 19:21
lucian dcolish: have you had patches rejected?
dcolish not the dev environment i'm looking for honestly
lucian: of course
lucian i see. well, it's osx. who cares, really?
dcolish heh
lucian people barely care about windows, and that's extremely popular 19:22
lucian goes back to dinner
dcolish i see it like this, i care enough to do the work so why not let it happen
dukeleto: ah congrats on the new house! 19:23
selena mentioned that
lucian: either way i'm interested in doing a good implementation of python on parrot so if you've got ideas on where to start i'm down 19:24
PerlJam pynie?
or was that a dig at pynie and I just didn't catch it. 19:25
lucian PerlJam: it's sort of down a dead end
PerlJam ?
lucian what i was thinking is rewriting the backend for an existing python compiler
PyPy has a good pure-python compiler
and then write the core types in winxed 19:26
everything above should be pure-python
PerlJam Isn't PyPy a little behind the times and incomplete?
dcolish its made lots of progress recently
19:26 bluescreen left
lucian PerlJam: it's at python 2.7 i think, and language-wise it's not incomplete at all 19:26
dcolish afaik its the most compatible alternative
lucian which grammar the parser uses is of little consequence
lucian nods
PerlJam excellent. 19:27
lucian i think CPython3's parser is C, which is unacceptable for pynie-ng
whiteknight what is pynie-ng?
lucian whiteknight: pynie-nextgen, an hypothetical new pynie
whiteknight oh, gotcha
it's like windows RG
lucian dcolish: this is the current pynie bitbucket.org/allison/pynie 19:28
it's broken and quite hard to develop further
dcolish yup, i've looked at it a bit
lucian and from what allison told me, there may be some copyright issues with it
dcolish i dont know why, but i like to idea of writing the backend in PIR
oh?
lucian dcolish: PIR is quite horrible
winxed is to PIR like C is to assembly 19:29
which suits me just fine
dcolish i dont know about winxed
lucian NQP is also an option
cotto_work dukeleto: do you have a preferred name for the jitterbug list?
lucian but it has lib dependencies
dcolish: feel free to poke NotFound about winxed 19:30
dcolish i shall
lucian i was thinking of having object, dict, list, etc written in winxed
and the pure-python compiler generating code referencing those
and reusing as much PyPy/jython pure-python libs as possible
dcolish this is probably getting ahead, but do you have any thoughts about C-Api? 19:31
thats a big pain point
lucian dcolish: i'm not sure it's possible
dcolish hmm
lucian ctypes should be possible, on top of NCI
it's the same problem everywhere, CPython's C API sucks for anything that isn't CPython 19:32
dcolish yeah and everyone uses it
dalek nxed: r830 | NotFound++ | trunk/winxedst0.cpp:
diagnose $loadlib unsupported in stage 0 and reformat a bit the error output
lucian and people like cython, but dislike ctypes
dalek nxed: r831 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
lucian dcolish: i think it's a general problem on parrot and that it should be ignored until pynie passes a few tests at least 19:33
dcolish sure, just wondering if there is any possibility of a solution
so what are these copyright issues you mentioned?
lucian dcolish: you'd have to ask allison, i just took it as read 19:34
it's not a big deal, pynie has very little code
dcolish ah ok, i'd like to start from scratch honestly 19:35
lucian dcolish: usually i disagree with that, but in this case, yeah
dcolish I think this would really benefit from a fresh approach 19:36
lucian dcolish: are you a student? do you plan on doing this for GSoC?
'cause i do 19:37
dcolish unfortunately i'm not a student anymore, i just left school for a job
lucian ok. so we could work together (me with GSoC, you on your own time)
dcolish totally 19:38
NotFound lucian: the possible problem with HLL low level objects written in winxed is the same as writing them in PIR: slowliness of method calls.
lucian that is, if i get accepted
dcolish would you work on it even if you didnt?
lucian NotFound: as opposed to HLL-specific pmcs?
NotFound lucian: yes
lucian dcolish: if i had the time, yes
not unlikely i will this summer otherwise, though
dcolish ok no worries 19:39
lucian NotFound: then i guess that's an acceptable overhead in the beginning
NotFound lucian: probably, and it may get better if something like 6model is introduced in parrot.
lucian i'm actually curious just how slow those lookups are, they're quite slow in python anyway 19:40
jnthn The thing is, even if lookups are fast (in 6model it's just some pointer follows in the best case), there's still the cost of invoking the thing you looked up. 19:41
In Parrot that cost is fairly high at the moment. 19:42
At least, compared to, say, C, anyway.
lucian jnthn: that wouldn't really be an issue, certainly not until pynie passes all tests
jnthn Partly because it involves (at least one) GCable being created, rather than just some stack space being used.
NotFound They are slow, but not so slow to be unusable. I have animation examples that works well in spite of dispatching lots of mathods every frame.
jnthn Aye, I suspect they're not insanely slow. Just not insanely fast either. :) 19:43
lucian i only care about them being within one order of magnitude of CPython at first 19:44
NotFound I've read several articles about how to make python go faster, so I guess it's not insanely fast ;) 19:45
lucian NotFound: yes, CPython is quite slow
but it's still usually not a problem
you see why i'm not much concerned about performance right now
dcolish I would really recommend having a good solution to the C-API question before getting too far along 19:46
i agree, that the performance of any solution would not matter now, as long as it could get faster. 19:47
19:47 Andy left
NotFound That's the advantage of slow solutions: they always can be made faster ;) 19:48
dcolish hah 19:49
NotFound Well, performance apart I guess I can solve any problem you may encounter in the winxed way. 19:50
With a little help from my friends.
dcolish I shall have to read about wasix 19:52
lucian dcolish: i think something like IronClad or cpyext is possible for pynie
but very hard. it's also not something i care about very much right now
NotFound dcolish: wasix is mostly a toy.
dcolish yeah, but it looks like a good way to learn winxed 19:53
since this is all 100% new to me
NotFound dcolish: winxed is 100% new to the vast majority of the world population ;) 19:54
But its syntax is familiar enough to most programmers to make it easy to approach. 19:55
dcolish ah, so winxed compiles out to PIR 19:56
NotFound Yeah
ShaneC do any languages target pasm rather than pir? 19:58
cotto_work ShaneC: I really hope not. 19:59
it's discouraged
NotFound Even imcc doesn't target pasm very well.
plobsing is it deprecated yet? can it be?
Coke doesn't think deprecating it is helpful. 20:01
Not until we have a replacement. 20:02
NotFound I think we may need to rewrite a bunch of tests first.
plobsing for PASM?
Coke in the meantime,
whoops.
NotFound $ ack -l pasm_output_is t/ | wc -l 20:03
35
plobsing sure, we have tests that depend on PASM. that shouldn't stop us from deprecating it. 20:04
that's better than the limbo-state it currently occupies
"it's there, but don't use it" sucks
ShaneC so long term pasm will be gone and languages will have to target a yet-to-be-determined imcc replacement?
Coke plobsing: what is your suggested replacement for it? 20:05
plobsing PIR
sure, it's not the best, but it is better than PASM 20:06
lucian plobsing: i thought the plan was to move to an assembly that maps 1:1 with bytecode
NotFound ShaneC: we'll probably have some language or api to generate PBC, and a PIR compiler as external tool, not inside libparrot.
ShaneC ah
lucian s/with/to/ 20:07
plobsing lucian: that's all fine and good, but we don't have that right now.
lucian plobsing: i see
plobsing also, there are some encapsulations that PIR protects which we should not be exposing.
an assembly that maps 1:1 is useful, but not as a compiler target.
Coke so if you want to rip out PASM, make /that/ happen, and then migrate from PASM to that. That seems reasonable to me.
s/that/the replacement/:1st 20:08
NotFound The main role of PIR for code generation right now is to isolate us from the gory details of calling conventions and keys.
20:09 PacoLinux left
NotFound At least from the winxed point of view. 20:10
ShaneC are the main gripes with imcc/pir the language itself or the interpretter? 20:11
plobsing NotFound: those are some fo the big ones.
cotto_work ShaneC: yes
ShaneC ;-P
plobsing irregular op-set is another huge thing PIR hides
NotFound plobsing: winxed takes care by itself with some of that. 20:12
It will not be so hard to do it at full. 20:13
whiteknight NotFound: I see an "exists" operator, but don't see any tests or examples of it's use. How to use it? 20:14
NotFound whiteknight: just like delete
And delete is borrowed from javascript.
if (exists a["b"]) ... 20:15
whiteknight gotcha
NotFound There aren't usages yet because I added it just yesterday, 20:16
plobsing NotFound: sure you handle some of it, but do you handle even all the different types of irregularity?
for example: do you fold constants? if folding throws an exception, do you *unfold* the constants?
NotFound plobsing: no, but we'll be able to do that if that were the only obstacle disallowing going forward. 20:17
bacek Good morning, humans
cotto_work hio bacek
bacek aloha, cotto_work 20:18
NotFound That is, when other solutions get enough maturity to start thinking about replacing pir.
bacek cotto, thanks for "do while" implementation
cotto_work bacek: thanks for the other 95% of opsc 20:19
bacek cotto, :)
cotto, I would like to merge new opsc. Rather sooner than later 20:20
cotto_work bacek: great. Did you doughera's post to parrot-dev about pmc2c and write barriers? 20:21
bacek cotto_work, first one is bug. I can fix it after merge. Second is not a bug. 20:22
cotto_work ok. It's alright if generated code is wacky as long as it dtrt.
bacek: also, last time I measured ops2c, it was ~20% slower in opsc_full_parse.
atrodo a small price to pay, right? 20:25
cotto_work minor annoyance 20:26
bacek cotto_work, yeah. But it's only 20% :)
cotto_work Yes. 200% would more of an issue. 20:27
bacek We did slowdown ops2c by order of magnitude in first migration to nqp.
cotto_work probably a couple 20:28
bacek probably. 20:29
perl6.ops failed to parse with new opsc...
whiteknight NotFound: is there any way to get a reference of a class object by name?
bacek "Your princess is in another castle"
whiteknight namespace Foo { class Bar { } }. If I say "var class = Foo.Bar", I get an error
NotFound whiteknight: not yet. 20:30
cotto_work bacek: any bets on which op? 20:31
bacek cotto, looking
plobsing I'm betting on the binder
jnthn The binder isn't actually in the ops file, mind. :) 20:32
plobsing ah. I just recall it being an op somewhere.
jnthn It could be the delightful rebless_subclass. :)
There is one that calls into the binder.
cotto_work bacek: the one with 11 arguments
set_llsig_elem 20:33
bacek cotto, yes. This one.
jnthn
.oO( Maybe going for argument high score wasn't such a good idea... ;-) )
20:34
bacek looks like we didn't handle [] yet
jnthn, :)
cotto, yes. foo = bar[42] doesn't work.
cotto_work bacek: go figure
bacek: are you fixing that? 20:36
bacek cotto, not now.
dalek rrot/opsc_full_parse: 85c61d1 | bacek++ | t/compilers/opsc/01-parse-body.t:
Add (failing) test for array access.
cotto_work ok. I'll ping you if I have to give up before it works.
bacek I pushed (failing) test for it. Feel free to fix grammar :)
20:39 lucian left
cotto_work bacek: why doesn't that parse? opsc has postcircumfix:sym<[ ]> 20:42
bacek cotto, just pull :) 20:43
dalek rrot/opsc_full_parse: 8f2e982 | bacek++ | compilers/opsc/src/Ops/Compiler/Grammar.pm:
Split %methodop into 2 precedence. Fix parsing of []
cotto_work git pull fixes a lot of my problems
NotFound whiteknight: using Foo.Bar; may work for some usages.
cotto_work bacek: it still explodes on perl6.ops, but it explodes later now 20:44
also, I definitely wouldn't have found that fix. I'll have to study that part of the code. 20:45
same op 20:46
PerlJam The other day some people were talking about separate PaFo and TPF applications to GSoC. Was that going to happen? 20:47
cotto_work PerlJam: that's the direction we're moving in. I think the blockers is an org admin for TPF. 20:48
PerlJam thanks. 20:50
cotto_work s/blockers/blocker/
PerlJam: you can confirm with dukeleto
bacek cotto, basically - wrong associativity of %methodop.
cotto_work bacek: it's quite strange seeing Perl6 terminology applied to C concepts.
bacek cotto, it's not "Perl specific". It's parsing specific :) 20:51
jnthn bacek: I'm curious - is the work to parse the op bodies preparing the way for something else?
bacek cotto, (explode) yes, we don't handle emitting of [] yet. 20:52
jnthn, of course. "World Domination" :)
cotto_work jnthn: yes. Once we can parse C and emit C, we're closer to parsing C and emitting lolcode.
atrodo i thought bf was the goal. huh 20:53
jnthn lolcode FTW!
bacek jnthn, actually it will help Lorito. And I can play with emitting LLVM meanwhile :)
jnthn ooh :)
20:55 plobsing left, plobsing joined
cotto_work lolcode, llvm, same thing 20:58
dcolish I noticed that on the jit page dynasm was mentioned, but not much else was said. what are some of the issues with using it? 20:59
dalek nxed: r832 | NotFound++ | trunk/winxedst1.winxed:
drop a branch of NewExpr that is not used since its case usage was moved to
21:00
21:04 plobsing left
jnthn bacek: Does that potentially mean we'll get some kinda JIT? :) 21:06
whiteknight NotFound: "using Foo.Bar" returns the NameSpace, not the class
NotFound: no rush. I'll create a ticket to document 21:10
bacek jnthn, "potentially" :) 21:11
NotFound whiteknight: quick hack: using Foo.Bar; var v = typeof(Bar); 21:12
whiteknight NotFound: yeah, I found that too
21:14 lucian joined
whiteknight NotFound " var c = class Foo.Bar" would be nice syntax, in my opinion 21:15
but whatever you think is best will work too
NotFound whiteknight: it may be, I was thinking about a variant of using static but looks ugly.
dcolish lucian: if I might ask, have you stopped working on pypy as well and if so why? 21:16
lucian dcolish: i never really started, the things i wanted to do required skills i didn't have (and didn't have the time to get them either)
NotFound A class operator may be cleaner and more usuful.
21:17 fperrad left
whiteknight NotFound: I like it because it's clean, clear, and it's one line of code. Not "using Foo.Bar;\\n var c = typeof(Bar);" 21:18
dcolish lucian: hmm i thought you were involved in the cpyext work
lucian dcolish: very, very little 21:19
dcolish ah
whiteknight msg dukeleto: GSoC applications are being accepted. Tell me whatever you need me to do and I'll do it 21:21
aloha OK. I'll deliver the message.
tadzik oh, GSoC 21:22
are there some project ideas already?
whiteknight tadzik: I have a million ideas 21:23
tadzik whiteknight: anything suitable for an aspiring newcomer?
whiteknight tadzik: you or somebody you know? 21:24
tadzik: I'll start blogging about project ideas. Ideally the aspiring newcomer will find a project that is both interesting and beneficial to Parrot. So, we want to know what *your* ideas are too 21:25
ShaneC blog url?
whiteknight ShaneC: whiteknight.github.com/
tadzik whiteknight: me precisely
whiteknight ShaneC: I'll be blogging a lot about GSoC, especially once we get accepted as an organization 21:26
tadzik heh, that's a formality, isn't it?
looking at how successful GCI was
whiteknight tadzik: trac.parrot.org/parrot/wiki/BigProjectIdeas is a good place to start for some ideas. There will be more 21:27
anyway, I have to pack up and head home now. I'll be back on later 21:28
tadzik dbus interface seems doable
21:29 whiteknight left 21:30 janus joined
dalek nxed: r833 | NotFound++ | trunk/winxedst1.winxed:
quick fix for some new usages that were wrong since the VarData refactor
21:36
21:40 plobsing joined
bacek_at_work ~~ 21:44
21:49 donaldh joined
dalek nxed: r834 | NotFound++ | trunk/winxedst1.winxed:
class operator, Issue 20, whiteknight++
22:15
22:19 rurban_ joined
dalek nxed: r835 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
22:20
22:22 rurban left, rurban_ is now known as rurban, lucian_ joined 22:25 lucian left
ShaneC whiteknight is the go-to guy for libparrot/embedding, right? 22:32
cotto_work ShaneC: yes 22:33
ShaneC cotto_work: thanks 22:35
cotto_work np
22:36 donri joined
donri Why not on freenode? :( 22:37
22:40 cosimo joined
dalek rrot: 2824705 | plobsing++ | / (4 files):
probe for 64-bit integers and long long
22:43
rrot: 1d4d381 | plobsing++ | config/auto/sizes/test (2 files):
remove unused config probes
rrot: bfd441d | plobsing++ | include/parrot/datatypes.h:
HAS_LONGLONG now detected by configure
rrot: 00aac5e | plobsing++ | / (3 files):
64-bit support in structview where available
rrot: 1977252 | plobsing++ | include/parrot/datatypes.h:
alignment for explicitly sized types
rrot: d113423 | plobsing++ | MANIFEST:
mk_manifest_and_skip
rrot: 0321a4c | plobsing++ | / (12 files):
Merge branch 'large-ctype-probes'
ttbot Parrot 0321a4c3 MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/38811 22:46
Parrot 2b74f06a i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/38824 22:48
cotto_work plobsing: ^ 22:52
plobsing yeah. booting up my VM now. 22:53
looks like a configure error
cotto_work ok
ttbot Parrot 2b74f06a i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/38886 22:54
mikehh t/steps/auto/sizes-01.t - Failed tests: 6-8, 11-12, 14-16, 19-20, 24 - post-configure tests 22:59
plobsing wtf my 32-bit linux VM has a 64-bit type 23:00
mikehh running configure with --test
23:00 lucian_ left
mikehh me too 23:00
ttbot Parrot 2b74f06a i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/38967 23:01
23:09 PerlJam left, pmichaud left, tadzik left, Util left 23:11 tadzik joined 23:14 PerlJam joined, pmichaud joined, Util joined
dalek rrot: d46d430 | plobsing++ | t/steps/auto/sizes-01.t:
update auto::sizes test

mostly, the internal data representations changed. also hugeintval and hugefloatval handling has been greatly simplified
23:15
ttbot Parrot d46d430d MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/39131 23:18
dalek rrot: 6e060cb | plobsing++ | config/auto/sizes.pm:
handle failed probe compilations
23:29
plobsing looks like it is fixed 23:38
dalek rrot: 984f59d | petdance++ | src/pmc/string.pmc:
consting and localizing vars
rrot: 1b2ad05 | petdance++ | / (2 files):
Merge branch 'master' of github.com:parrot/parrot
plobsing and we now have long double, long long, and 64-bit support (some conditions apply, see C compiler for details) 23:39
ttbot Parrot d46d430d MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/39143 23:40
dalek rrot: 9e03d59 | petdance++ | src/pmc/t (2 files):
consting vars, and marking interps as UNUSED
23:44
ttbot Parrot 984f59db MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/39351 23:47
23:51 donaldh left
dalek rrot/opsc_full_parse: 7054bcf | jkeenan++ | MANIFEST:
Update MANIFEST. config step init::manifest was failing.
23:52