Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 5 August 2011.
00:11 soh_cah_toa joined 00:40 whiteknight joined
whiteknight !!! 00:44
I think I've finally fixed the last bug in my Winxed lambda syntax patch
bubaflub whiteknight++ 00:46
soh_cah_toa nice 00:47
dalek nxed/lambda_syntax: 2f58961 | Whiteknight++ | winxedst1.winxed:
fix small spelling mistake
nxed/lambda_syntax: 4a9acd6 | Whiteknight++ | winxedst1.winxed:
ReturnYieldStatement was ignoring the results of optimization. doing a 'tailcall' into a builtin would fail parsing. Fix that, and now lambdas work for all cases I've tested
whiteknight If either of you guys are familiar with Y-combinators, take a look at this: github.com/Whiteknight/winxed/blob...a_y_comb.t 00:48
The version written with the lambdas is down-right tiny 00:49
soh_cah_toa y-combinator: that sounds scary
bubaflub i've read a few articles about y-combinators in different languages and never quite "got it" 00:53
sorear you're wearing the wrong hat 01:01
with a programming hat, you won't understand the use of the Y combinator, because well it doesn't really have one
it's very important in a theory context
01:05 daniel-s joined
whiteknight it's sort of unnecessary in Parrot, because there are plenty of ways to get a reference to a function 01:07
but, it's fun to do and if you're doing functional-alike coding, it's more familiar 01:08
sorear also it's important to know about, because the fact that it's possible is non-obvious and can lead to bugs 01:13
the GHC optimizer has a long-standing bug where if you write a Y combinator directly it will hang the inliner
whiteknight sorear: for a functional language thats...weird 01:14
01:31 whiteknight joined
soh_cah_toa aloha: seen jay? 01:41
aloha soh_cah_toa: jay was last seen in #parrot 7 days 6 hours ago joining the channel.
dalek nxed/lambda_syntax: e346d7c | Whiteknight++ | t/advanced/10lambda.t:
add in a test file with various usage patterns and syntaxes for lambdas
01:42
whiteknight msg NotFound as promised I opened two pull requests tonight. The first adds basic multi support with no changes in syntax. The second adds the new lambda syntax, for you to consider. Do not rush, these can wait. Enjoy your Fiesta 01:46
aloha OK. I'll deliver the message.
whiteknight and with that, WHITEKNIGHT OUT!
01:51 woosley joined, Coke joined 02:53 JimmyZ joined 03:47 worr joined 04:10 JimmyZ joined 05:01 JimmyZ joined 05:22 fperrad joined 05:50 worr joined 06:10 jsut joined 07:31 preflex joined 07:38 fperrad joined 07:41 mj41 joined 07:56 contingencyplan joined
dalek kudo/nom: b7b88d7 | (Erik Johansen)++ | src/core/Any.pm:
Change min and max to use user supplied compare.
08:06
kudo/nom: ada28b6 | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Tune and clarify declarator2text() a bit
08:08
08:11 dafrito joined 08:15 SHODAN joined 08:16 JimmyZ joined
dalek rrot: b60c778 | fperrad++ | runtime/parrot/library/distutils.pir:
[distutils] remove the target sdist_zip
08:40
08:42 M_o_C joined 08:55 varta joined 09:03 jsut_ joined
dalek kudo/nom: 05b7e3a | moritz++ | src/Perl6/Actions.pm:
include constant name NYI error message
09:36
09:43 JimmyZ joined, Eclesia joined
Eclesia hi 09:43
dalek kudo/nom: ada28b6 | tadzik++ | lib/Pod/To/Text.pm:
[Pod::To::Text] Tune and clarify declarator2text() a bit
09:44
kudo/nom: 51eb0f8 | pmichaud++ | src/core/ (2 files):
Add Grammar.parse .
kudo/nom: ea2b5e6 | pmichaud++ | src/Perl6/Actions.pm:
Merge branch 'nom' of github.com:rakudo/rakudo into nom
09:49 whiteknight joined
Eclesia hi whiteknight 09:50
whiteknight Good morning, Eclesia
Eclesia whiteknight: I found an issue in rosella. the copy function on File, only works with text file 09:52
whiteknight oh? I'll have to check on that
09:54 not_gerd joined
not_gerd ~~ 09:54
whiteknight good morning, not_gerd
not_gerd good morning, whiteknight
msg cotto I added some comments/clarifications to my post on m0+ - see github.com/gerdr/on-parrot/commit/...e5f9e93525 09:57
aloha OK. I'll deliver the message.
10:10 preflex_ joined
dalek kudo/nom: 6ff7c69 | moritz++ | t/spectest.data:
run map.t and substr.t
10:12
not_gerd atrodo: I've just taken a look at Lorito's design.pod and ops.pod 10:16
the most obvious semantic difference seems to be that it wants to make the object system a built-in (ie not building it on top of it) 10:17
ie your Lorito is not supposed to replace Parrot's C internals, just expose them differently 10:19
whiteknight not_gerd: yeah, I would say that's a fair analysis 10:20
not_gerd this is actually probably what I'd done as well if I hadn't read the m0 spec before
whiteknight one of the biggest motivators is JIT. We need a language which is platform-neutral and easy to JIT 10:21
C is too hard to parse at runtime, esepcially if we want to use more than a small subset, so an assembly-like language is best for simple table lookup conversion 10:23
Eclesia m0? 10:24
JimmyZ Didn't m0 steal some ideas from luajit?
not_gerd Eclesia: github.com/parrot/parrot/blob/m0-s...d32_m0.pod 10:30
Eclesia not_gerd: thanks 10:42
dalek sella: eb18276 | Whiteknight++ | src/filesystem/File.winxed:
Add an optional 'encoding' parameter to functions which read text from files. In file copy, read text in binary mode
whiteknight Eclesia: That commit should fix File.copy
not_gerd building the object model on top of m0 is actually closer conceptually to what PyPy does 10:44
luajit is compatible to the standard Lua VM, ie it has built-in table ops
Eclesia whiteknight: maybe i didn't thing about all cases, but shouldn't the copy always be in binary ? I have the feeling this encoding parameter is useless
whiteknight: ho nevermind, I mess up with the '+' and '-' lines :D 10:47
mj41 Hi. Parrot commits history bit.ly/qxKgUX 10:48
10:58 whiteknight joined
whiteknight msg kid51 if you have a spare minute could you take a look at the pull request from gerdr? I would like to merge before 3.7, if there are no major problems 11:05
aloha OK. I'll deliver the message.
dalek rrot: 17d3cd0 | Whiteknight++ | src/pmc/multisub.pmc:
Merge branch 'whiteknight/multisub_cleanup'
11:18
11:24 JimmyZ joined
whiteknight cotto: ping 11:28
msg cotto do you have any thoughts on whiteknight/imcc_tag? I would like to merge it sooner than later (before the release, if possible) 11:31
aloha OK. I'll deliver the message.
Eclesia questions : how can I get the current system time ? and the system temporary folder ? 11:39
whiteknight Eclesia: I think the current system time comes from floattime() 11:40
it will be a decimal. I need to look into the formatting routines
Eclesia whiteknight: I just need a numeric value 11:41
no need for formating ;)
whiteknight I don't think there is a standard way to get the system temporary formatting. Use the Env PMC to look for global variables
not_gerd Eclesia: the config hash contains a "tempdir" key 11:48
whiteknight oh does it? 11:55
the config hash contains too many things
dalek kudo/nom: 205e0ed | jonathan++ | src/Perl6/SymbolTable.pm:
When we need to on-demand compile a proto, we should also immediately do its candidates.
11:58
kudo/nom: 1b8d004 | jonathan++ | src/binder/multidispatch.c:
Re-enable constraints being able to see the lexical environment.
kudo/nom: f1e2037 | jonathan++ | src/ (5 files):
Make it so the constraints actually see the correct lexical environment, not just the static lexpad entries.
kudo/nom: 5d3e444 | jonathan++ | NOMMAP.markdown:
Update nommap; code constraints on multi-dispatch are done.
tadzik yay 11:59
some modules is now fixed due to this, isn't it?
s/modules/module/; I don't really remember which one
oh, ww, nvm
dalek rrot: 361e440 | Whiteknight++ | NEWS:
+add load_bytecode_p_s to NEWS
12:02
Heuristic branch merge: pushed 46 commits to parrot/whiteknight/imcc_tag by Whiteknight
12:05 register__ joined, cotto joined
nopaste "Eclesia" at 192.168.1.3 pasted "temp directory access" (11 lines) at nopaste.snit.ch/70297 12:42
Eclesia not_gerd: I am having an error when trying to acces the config hash. is this the proper way ? (see nppaste above) 12:43
not_gerd no idea - I just know it's there because I had to fix it on msys 12:44
what do you get for `./parrot_config tempdir` on the sehll? 12:45
Eclesia not_gerd: I have : /tmp
so it's the way I get the config hash ... 12:46
whiteknight : you have an idea on the proper way to get it ?
not_gerd google pointed me at github.com/Whiteknight/Rosella/blo...rot.winxed 12:47
var config = getinterp()[IGLOBALS_CONFIG_HASH];
Eclesia not_gerd: thanks, I called directly the rosella method ^^ 12:51
whiteknight Eclesia: That is not the correct way
Eclesia whiteknight: you mean the way it's done is rosella ? 12:52
in*
whiteknight no, the Rosella way is correct
Eclesia I rely on it, that it's fine then :)
12:52 kid51 joined
Eclesia is* 12:53
kid51 whiteknight: ping
whiteknight pong
kid51 I'm looking at the not_gerd pull request. I like it, but before it merges into master, I'd like to improve its test coverage. 12:54
What is the best way git-wise for me to do that.
whiteknight kid51: what do you mean?
kid51 I've never pulled from a foreign repository before. I don't want to commit immediately to git master. 12:55
I want to work on the patch more before we commit to master.
whiteknight okay, we can pull it into a branch in parrot/parrot so we can play with it
12:55 JimmyZ joined
kid51 Can you do that? 12:56
whiteknight yeah, let me do that right now
kid51 thanks
whiteknight hold on, I'm in the middle of a test run
not_gerd I actually have it in a local branch - just merged it to master before pushing it to my fork 12:59
dalek rrot/gerdr/msys: 11cad81 | (Gerhard R)++ | config/ (2 files):
fixed architecture detection
13:01
rrot/gerdr/msys: e65b86b | (Gerhard R)++ | config/ (2 files):
add proper path translation
rrot/gerdr/msys: de8b9aa | (Gerhard R)++ | / (2 files):
path translation for temporary test files, skip hanging test pmc/threads.t
rrot/gerdr/msys: ea819be | (Gerhard R)++ | config/gen/config_pm.pm:
properly translate path used for prefix of non-installed Parrot
rrot/gerdr/msys: 94c06d7 | (Gerhard R)++ | config/ (2 files):
add quotes to correctly handle paths with spaces
rrot/gerdr/msys: e5d9490 | (Gerhard R)++ | config/auto/headers.pm:
explicitly probe for sys/utsname.h
rrot/gerdr/msys: c9582b5 | (Gerhard R)++ | / (2 files):
don't backslash-escape on MSYS
rrot/gerdr/msys: f3cbe37 | (Gerhard R)++ | / (6 files):
Merge branch 'msys'
rrot/gerdr/msys: b3ced86 | Whiteknight++ | / (6 files):
Merge branch 'master' of git://github.com/gerdr/parrot into gerdr/msys
kid51 not_gerd: We have tests for configuration steps in t/configure. I'd like to make sure we keep the test coverage high.
kid51 Thanks. 13:04
kid51 looks at gerdr/msys branch
whiteknight: For future reference, what command did you use for that?
not_gerd kid51: how would I go about running these tests? I don't see a make target for that...
dalek kudo/nom: 607c1b8 | moritz++ | / (4 files):
atan2
13:08
kid51 not_gerd: perl Configure.pl --test=build 13:12
not_gerd: Why did you make the change at line 104 of config/auto/arch.pm? It seems like you're making that change for all platforms. 13:13
Also: what would happen in lines 85-88 if neither of those $ENV{elements} were defined? 13:14
not_gerd kid51: re arch.pm: it affects standard windows as well, but probably has no effect assuming i386 is default 13:15
kid51 Should there be a default assignment.
BTW, what is 'msys', anyway?
not_gerd msys is a gnu userland for windows based on mingw 13:16
think cygwin without the linux emulation layer
kid51 k
Would we be better off if we said? $cpuarch = lc ( $ENV{PROCESSOR_ARCHITEW6432} || $ENV{PROCESSOR_ARCHITECTURE} || 'i386' ); 13:18
not_gerd I don't think so 13:21
$ENV{PROCESSOR_ARCHITECTURE} should always be defined
conceptionally, it belongs to the other replacements
$ENV{PROCESSOR_ARCHITEW6432} || $ENV{PROCESSOR_ARCHITECTURE} will return 'x86' or 'amd64' 13:22
the || is necessary to deal with 32-bit processes on 64-bit hardware
$ENV{PROCESSOR_ARCHITECTURE} returns the bit-ness of tzhe process it's run from, and probably always return 'x86' as msys is 32-bit 13:23
(assuming you're not using something like windows ce, for which there probably is no msys) 13:24
kid51 Well, since someone might run the t/steps/auto/arch-01.t test on other platforms, would you object to setting 'i386' as the fallback value? (Without it, I get an uninitialized value warning). 13:26
13:28 dafrito joined
not_gerd sure, I did not know that you can get to that part of code if you're not actually using msys 13:29
conceptionally, the correct fallback value would be x86, though, but it won't make any difference 13:30
kid51 Thanks.
Then we'll say x86.
not_gerd btw, I just pulled gerdr/msys from the parrot repo 13:39
I assume that's where I should do changes?
kid51 Yes, but I'll be pushing my changes there in a couple of minutes after I run Devel::Cover 13:41
dalek kudo/nom: 9f86f98 | moritz++ | / (4 files):
sec, asec
13:44
kudo/nom: 8479b4f | moritz++ | src/Perl6/Grammar.pm:
fix typo in Grammar.pm, baest++
13:45
kudo/nom: 3cfd93d | jonathan++ | src/ (5 files):
Fix use of captured type variables as multi-dispatch constraints.
13:47
kudo/nom: 882128c | jonathan++ | NOMMAP.markdown:
Operator overloading seems to work fine, so remove from punch list.
rrot/whiteknight/frontend_parrot2: 3631eec | Whiteknight++ | / (3 files):
Set the executable name from prt0, to avoid an API call. Show usage messages from prt0 if necessary, fix handling of -h and -V. a few other related cleanups
rrot/gerdr/msys: 7d3ff40 | jkeenan++ | / (5 files):
Update msys-related tests. gerdr++. Update copyright dates.
13:49
kid51 Coverage analysis here: thenceforward.net/parrot/coverage/c...erage.html
not_gerd: Does that look okay with you? 13:51
not_gerd looks good to me 13:55
Eclesia ++ 13:56
kid51 smolder on branch: smolder.parrot.org/app/projects/rep...ails/20856 13:59
Will now merge into master; not_gerd++
dalek rrot: b3ced86 | Whiteknight++ | / (6 files):
Merge branch 'master' of git://github.com/gerdr/parrot into gerdr/msys
14:00
rrot: 7d3ff40 | jkeenan++ | / (5 files):
Update msys-related tests. gerdr++. Update copyright dates.
14:12 jaffa4 joined
jaffa4 hi 14:12
Why is this notworking set_global ["m1"],"c",$I0?
dalek kudo/nom: a959e52 | jonathan++ | src/Perl6/Metamodel/ParametricRole (2 files):
Toss some unused methods.
14:23
p: bdab779 | pmichaud++ | src/QAST/Compiler.nqp:
Add pastnode rxtype to QAST::Regex.
14:32
p: e913287 | moritz++ | src/HLL/Compiler.pm:
error and backtrace should go to standard error by default
14:34
14:38 ssqq joined
dalek kudo/nom: 6ac303d | pmichaud++ | / (2 files):
Add code blocks and code assertions in regexes.
14:44
rrot: a94f568 | jkeenan++ | src/pmc/multisub.pmc:
[codingstd] Make file pass 3 codingstd tests.
14:52
kid51 msg whiteknight You have a TODO in src/pmc/multisub.pmc
aloha OK. I'll deliver the message.
14:59 autark joined
benabik o/ 15:02
aloha: m0?
aloha benabik: m0 is the VM that Lorito will run on top of. or leto.net/perl/2011/05/what-is-m0.html
benabik m0?
Ah, aloha only answers if you ask directly. Fair enough. (Was reading back scroll.)
15:03 calatalee joined
jaffa4 Why is this notworking set_global ["m1"],"c",$I0? 15:06
benabik jaffa4: In what way is it not working? Does it give an error, or does it seem to work but the corresponding get_global doesn't work? 15:07
pmichaud jaffa4: it's not possible to "set_global" anything but a PMC, afaik
dukeleto ~~
pmichaud you can do: 15:08
$P0 = box $I0
set_global ["m1"],"c",$P0
dukeleto benabik: you have questions about m0?
jaffa4 what about set_hll_global? What is the difference?
pmichaud set_global sets entries based on the current namespace
set_hll_global sets entries relative to the top of the current hll's namespace 15:09
(set_root_global sets entries relative to the root namespace)
benabik dukeleto: No, I was reading the backscroll and Eclesia said "m0?" and I was wondering why that didn't trigger aloha to give an answer. Didn't realize it had to be addressed directly.
dukeleto benabik: aloha's ancestors answered without a direct question, but people got annoyed at the noise. Hence, aloha is quiet unless spoken to 15:10
benabik dukeleto: Ah. Seems less useful that way, but understandable. 15:11
jaffa4 IS it faster if one uses is handle instread of ["m1"]? 15:12
pmichaud, so which one do you recommend to use? 15:14
dukeleto benabik: how goes your GSoC progress? I saw that you made some good stuff happen in the last week 15:17
benabik dukeleto: Very very simple trees can be built from PAST to bytecode. Trying to get squeak to run on it, I ran into the fact that PAST::Block handling involves a lot of PIR text so I have to rewrite it… and it's not simple. 15:18
dukeleto: Hope to have that done by Monday, but testing all the corner cases in there will be "fun" 15:19
dukeleto benabik: incremental improvements. Also, feel free to try to recruit other parrot hackers. If you create github issues for things you know you need to hack on, then you can email parrot-dev and tell people that karma points await them 15:23
benabik: even if gsoc is over, we want your project to continue on, and getting other people involved is always good 15:24
benabik dukeleto: I definitely plan on continuing. IMNSHO, PCT needs some real refactoring… I may try to get the bytecode gen working and then start up a PACT (Parrot Alternate Compiler Toolkit) project to test out some refactorings. 15:26
dukeleto: I really feel that one of Parrot's strengths is in being a playground for developing languages. And I'd like PCT to be a top class framework, usable at everything from the "just use it to generate PIR/bytecode" to "I just want to parse and forget". It's pretty good right now, but I have ideas… :-D 15:30
(Oh, and at the "I'd like to experiment with optimization" level too, which it doesn't currently have the ability to do. I think merging tree-optimizer into PCT is fairly high priority, with some pre-made optimizations available. Not mandatory, since they won't all work for all languages, but available.) 15:31
dukeleto benabik: i like the sound of that 15:32
JimmyZ or call it PCC ( Parrot Compiler Collection)
something like GCC ;)
dukeleto benabik: because without tree-optimization becoming part of PCT, it will surely bitrot. It has already happened once.
benabik JimmyZ: Sadly, that acronym is already used in the compiler-space. Portable C Compiler - pcc.ludd.ltu.se/
dukeleto JimmyZ: we already have a PCC (parrot calling conventions), so we will need a different name :)
benabik JimmyZ: And is already used in Parrot… oh, dukeleto beat me to it. 15:33
JimmyZ YAPCC :)
Yet Another ...
well, it's wrong too
Parrot didn't have one 15:34
or Yet Another Portable C Compiler :
benabik I like PACT because it's pronounceable. Alternate belongs in there because if I get serious about it, it'll be a while before it's a full replacement for PCT. And if it does replace PCT, it can just be renamed PCT2 or something.
JimmyZ or just refactor PCT 15:35
benabik JimmyZ: I want to do the kind of refactors that break things. 15:36
JimmyZ pmichaud++ wanted to port PCT to NQP, irrc
benabik JimmyZ: So it can't be done in-tree. Plus I think PCT would be easier to develop if it was out of tree… Altering PCT causes make to rebuild half of Parrot.
JimmyZ: Most of PCT is in NQP. See the nqp_pct branch. 15:37
JimmyZ: Or rather, has already been rewritten in NQP.
JimmyZ benabik: yeah, I saw it , great GSOC work 15:38
benabik: I meant he wanted make PCT to part of NQP
well, I am not sure 15:39
or maybe
benabik JimmyZ: The newest NQP has some extensions to PCT. And some of his recent changes hung out in NQP for a while before showing up in Parrot.
JimmyZ benabik: yeah 15:40
moritz Coke: FYI I smoked rakudo/nom on latest parrot yesterday, worked all fine 15:58
16:02 preflex joined
jaffa4 What is the size of an int in parrot? 16:04
benabik I think it's architecture dependent. 16:05
I could be wrong.
jaffa4 I guess it is at least 32 bit
benabik jaffa4: If I'm right, it's 32/64 bit depending on architecture/build settings. 16:06
moritz whatever `parrot_config intsize` returns
jaffa4 How do you solve that problem in Rakudo?
moritz we don't 16:07
jaffa4 it will need to solved one time or another.
jnthn__ int in Perl 6 is spec'd to be machine dependent
benabik And Int is defined to be arbitrarily large, IIRC. 16:08
jnthn__ right :)
jaffa4 ok What about number? How big is it? 16:12
16:29 ilbot2 joined
moderator Parrot 3.6.0 "P�jaros del Caribe" released | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
dalek rrot: 284dad3 | jkeenan++ | NEWS:
Report improved configuration support for msys. gerdr++.
16:30
rrot: d8d5cce | jkeenan++ | src/pmc/multisub.pmc:
Merge branch 'master' of git@github.com:parrot/parrot
16:47 cotto joined 16:54 Eclesia joined
Eclesia re 16:54
moritz fwiw, rakudo/nom was fine on parrot RELEASE_3_6_0-179-gc3f359c 17:17
I've got lots of spectest failures on top of RELEASE_3_6_0-197-ga94f568 17:18
but it's a different machine, so I'm not yet sure if it's one of the commits inbetween that broke rakudo, or a different environment 17:19
doing the test now, but it takes some time
17:23 cotto joined
cotto ohai 17:23
im in yurp
aloha, clock?
aloha cotto: LAX: Sat, 10:23 PDT / CHI: Sat, 12:23 CDT / NYC: Sat, 13:23 EDT / UTC: Sat, 17:23 UTC / LON: Sat, 18:23 BST / BER: Sat, 19:23 CEST / TOK: Sun, 02:23 JST / SYD: Sun, 03:23 EST
17:25 lucian joined
cotto going to yapc::eu? 17:31
aloha, going to yapc::eu?
aloha cotto: going to yapc::eu is cotto or jnthn or szabgab or Maddingue or TimToady or rurban or pmichaud or tadzik
moritz aloha: going to yapc::eu is also TimToady 17:40
aloha moritz: Okay.
17:40 jsut joined
cotto moritz, one would hope so ;) 17:40
msg whiteknight The whiteknight/imcc_tag branch makes me happy. +1 to merge.
aloha OK. I'll deliver the message.
moritz never mind my previous report about broken rakudo tests on parrot -- my t/spec/ had local modifications, so it didn't pull the latest changes from github 17:42
so my report was bogus
will try to get a non-bogus report now :-)
18:05 cotto joined 18:37 Eclesia left 18:59 davidfetter joined
dalek kudo/nom: 6a4783e | (Martin Kjeldsen)++ | src/core/Any.pm:
Replace $by in min,max with &infix:<cmp>
19:07
p: e0f623d | tadzik++ | src/6model/reprs/P6opaque.c:
Move write bareer to a correct place; jnthn++
19:10
19:20 worr joined
dalek kudo/nom: c0e4135 | tadzik++ | / (4 files):
Implement Formatting Codes in Pod strings
19:24
19:40 soh_cah_toa joined 19:45 ambs joined 19:46 fperrad joined 19:58 kid51 joined
lucian is there a way to add a custom exception handler? 20:06
soh_cah_toa lucian: in pir?
lucian soh_cah_toa: sure 20:07
soh_cah_toa lucian: are you familiar w/ the 'push_eh' and 'pop_eh" opcodes?
lucian all i can think of is wrapping everything in a try
soh_cah_toa: nope. looking them up 20:08
soh_cah_toa let me find you an example. h/o
also, look in docs/user/pir/exceptions.pod 20:09
there are many examples in runtime/parrot/library/osutils.pir. in particular, the rmtree() function 20:10
lucian soh_cah_toa: right, so just catch all exceptions
i'm trying to implement custom stack traces
soh_cah_toa yeah, but inside the handler you use .get_results to determine the type
lucian hmm, might write it in winxed 20:11
soh_cah_toa it's not possible to catch specific exceptions in winxed yet?
lucian sure it is 20:12
i'd just rather use winxed than pir
soh_cah_toa of course
lucian heh, i'm almost tempted to use a full-blown templating language for the compiler 20:17
dalek kudo/nom: 290edf6 | moritz++ | src/core/Any.pm:
correct usage of proto

If the proto never re-dispatches to its candidates, there is no point in having the candidates at all
There's still a multi dispatch bug that prevents us from running the candidates without named param though :(
20:21
kudo/nom: 88ba2f1 | moritz++ | src/core/Any.pm:
work around a multi dispatch bug

Unfortunately that means going back to a repetition of the default value
Tene_ There's a "backtrace" method on.. uh... something you can get from the exception, that gives you an object you can walk over.
iirc 20:22
dalek kudo/nom: deb5c7b | jonathan++ | / (6 files):
Merge branch 'nom' of github.com:rakudo/rakudo into nom
20:23
20:25 perlite joined
benabik o/ 20:41
soh_cah_toa benabik: howdy 20:42
benabik soh_cah_toa: What's happening?
soh_cah_toa eh. exploring pct to see how my debug format idea can be implemented 20:43
benabik That may be interesting… The bits that know where the high level information is may not know where in the final code it goes. 20:44
soh_cah_toa yeah, it'd just be one stage of the process 20:45
benabik May need to add a new "debug_info" off POST::Node and add the appropriate information in PAST::{New,}Compiler
soh_cah_toa hm, that's an idea 20:46
btw, the push() method for a PAST::* object. how does that work? it isn't exactly an array that can push/pop entries. does it add a child, sibling, or what? 20:47
benabik PCT::Node and descendants are captures. They have a named and a positional part.
The named part holds attributes and positional holds children.
push adds a new child at the end.
soh_cah_toa ah, ok 20:48
20:48 M_o_C joined
benabik Most of the methods on the PCT::Node subclasses are just sugar on top of the named section. i.e. $node.name() is almost the same as $node<name>. 20:49
soh_cah_toa oh neat
benabik The methods occasionally do things like setting defaults and the like.
soh_cah_toa right, like lvalue(), isdecl(), etc 20:50
benabik (Most of the methods actually are wrappers around PCT::Node.attr(), which handles getting/storing info from the capture and handling default values.
soh_cah_toa ok 20:51
benabik (This may be more detail than you need. :-D ) 20:52
soh_cah_toa all the PAST::* classes inherit from PCT::Node?
benabik PAST::* descend from PAST::Node, which descend from PCT::Node.
Similar for POST::*
soh_cah_toa ok
benabik AFAIK, the only exceptions are the compilers, which instead descend from PCT::HLLCompiler 20:53
soh_cah_toa right
interesting. so maybe debug data would continually be collected between each compilation stage: PAST (get high level stuff) -> POST (add more opcode stuff) -> PIR (ditto) -> PBC (add very low stuff) 20:55
this actually may not be as hard as it sounds 20:56
benabik Yes. POST::Node would need to hold information noting what HLL construct it belongs to. Then it would either have to add the appropriate annotations (or whatever) to the PIR or build the debug segment for PBC.
soh_cah_toa are there any docs about the POST process? it's the one stage i'm not too familiar with 20:57
benabik Currently POST is mostly full of chunks of PIR. 20:58
The stages aren't hugely well documented. I find the NQP versions on my branch to be fairly readable though. 20:59
soh_cah_toa it's the stage where high-level statements are translated into actual opcodes, correct?
benabik PAST::Compiler is basically where that happens. 21:00
POST::Compiler is mostly organizing it into PIR
POST trees are full of bits of PIR.
soh_cah_toa ok, interesting
benabik POST::Compiler handles a lot of the ordering and the gritty details. But PAST::Compiler generates most of the opcodes… POST is mostly structured PIR. Despite the multiple formats, the work is actually very shallow. 21:02
(POST being structured PIR is irritating to me, BTW… There are lots of things like "push_pirop('.local pmc block')" in PAST::Compiler that I need to work around.
soh_cah_toa ok 21:03
benabik If you want to add to PCT, you will probably prefer working on my branch. It's 100% functional for PIR generation, it's just the PBC gen portion that doesn't fully work. 21:10
(Mostly because attempting to extend something written in tons of PIR is painful.)
soh_cah_toa sure
benabik soh_cah_toa: If you have any other questions, I'm happy to help. But I've got to go for now, so either e-mail or aloha and I'll get back to you. 21:32
soh_cah_toa benabik: sure thanks 21:33
bubaflub aloha: going to ppw? 21:34
aloha bubaflub: No clue. Sorry.
bubaflub aloha: ppw?
aloha bubaflub: I have no idea. 21:35
soh_cah_toa me!
bubaflub soh_cah_toa: nice. i'm trying to get my work to fly me out.
soh_cah_toa oh, very cool
bubaflub i reckon there will be a few other Parroteers there as well
soh_cah_toa i hope so 21:36
21:36 Eclesia joined
Eclesia hi 21:37
soh_cah_toa Eclesia: hey
21:44 Psyche^ joined 21:49 lucian joined
Coke moritz++ danke. 22:19
22:36 whiteknight joined
whiteknight Good evening, #parrot 22:37
soh_cah_toa whiteknight: hey
whiteknight hello soh_cah_toa 22:38
22:38 worr joined
whiteknight Coke: ping 22:46
Eclesia whiteknight++ : for the fix on file.copy 22:48
whiteknight Eclesia: I'm sorry I didn't test binary file copies sooner
Eclesia whiteknight: no problem. 22:50
whiteknight: changing subject : do you know how to zip a folder without the relative path ?
whiteknight Eclesia: no. I don't know anything about zipping folders. I've never tried it 22:51
You can get the full path from rosella. I thing there is a function Rosella.FileSystem.current_directory() that returns it
Eclesia whiteknight: yes but actually I'm using the spawnw to zip my files, but since the call is made from a given place, the relative path is stored in the zip, wich is not great :/ 22:52
22:53 AzureSto_ joined
Eclesia whiteknight: or perhaps you might know how I could call two actions in one spawn ? like "cd some/folder + zip mystuffs" 22:53
whiteknight Eclesia: Parrot has a chdir somewhere
I don't remember if Rosella exposes it
Eclesia # Make a new directory, then enter it 22:55
$S1 = 'foobar'
mkdir($S1)
chdir($S1)
dalek rrot: 61b84be | Whiteknight++ | src/pmc/multisub.pmc:
Remove a TODO note, and put in some basic bounds-checking code. I still don't like this but it's slightly better.
whiteknight Eclesia: okay
Eclesia I found that by making a search on the full code. seems like it's what I'm looking for 22:56
whiteknight msg Coke I would really like to merge the whiteknight/imcc_tag branch before the release, if that's cool with you. I'm doing lots of local testing and it's looking fine.
aloha OK. I'll deliver the message.
soh_cah_toa whiteknight: do you think my debug format spec is a possibility? i've been fiddling w/ PCT a bit today and i think it actually may not be too hard 23:00
whiteknight: i'm thinking it'd be a multi-stage process where some high-level info is gathered by PAST, then passed down to POST where some info is filled in and more info is generated, then passed down again to PIR/IMCC where more low-level info is finalized and shoved into the bytecode 23:01
whiteknight soh_cah_toa: From what I've seen it looks pretty good. I still haven't had time to really dig into it deeply 23:02
soh_cah_toa yeah ok
whiteknight soh_cah_toa: I'll look at it now. Where are you with hbdb?
soh_cah_toa pff..
uh, well i guess i gotta think about watchpoints now
Coke whiteknight: pong
whiteknight: give me a 1 line summary of the branch? 23:03
dalek kudo/nom: 482e96e | Coke++ | t/spectest.data:
run more tests, track failure modes
whiteknight Coke: Adds a new :tag() syntax to IMCC. Changes no existing syntax and affects no other functionality
the diff is a pain because it affects the IMCC generated files 23:05
23:09 cotto joined 23:11 whiteknight joined
whiteknight is rapidly becoming disillusioned with ubuntu 23:16
Eclesia whiteknight: ho? what are you using normaly ? 23:17
cotto aloha, clock? 23:18
aloha cotto: LAX: Sat, 16:18 PDT / CHI: Sat, 18:18 CDT / NYC: Sat, 19:18 EDT / UTC: Sat, 23:18 UTC / LON: Sun, 00:18 BST / BER: Sun, 01:18 CEST / TOK: Sun, 08:18 JST / SYD: Sun, 09:18 EST
cotto doesn't know anything about the time atm
whiteknight Eclesia: I'm on ubuntu. I have 11.04 on one partition, and Ubuntu 10.04 on another 23:19
I find 11.04 to be extremely unstable in a lot of ways
The fact that it locks up occasionally and forces me to restart gnome is obnoxious 23:20
Eclesia whiteknight: I guess you are on the last gnome ^^
whiteknight and the various problems I have with my trackpad *and* my normal USB mouse are both frustrating
Eclesia switched to lxde. 23:21
23:21 worr joined
soh_cah_toa wow, that's pretty bad. i'd report that 23:21
Coke whiteknight: sure, pull the trigger now. 23:23
whiteknight: I hate 11.04; it screwed up the power save mode on the laptop, so when it sleeps, it freezes, I have to reboot.
whiteknight Coke: I'm looking at a bit of 11th hour weirdness. g++ apparently is failing on a line of code that I didn't touch I need to figure out why 23:24
Eclesia going to bed +++
whiteknight Coke: Yeah, I had to disable a lot of power features for the same reason
oh, no. It is one of the ones I touched. But I copy+pasted it from a place that I didn't touch 23:25
apparently yacc treats SymReg * r and SymReg * const r differently 23:34
the former it assigns to a void*, the later it assigns to an integer
ttbot Parrot 61b84bee MSWin32-x86-multi-thread make error tt.taptinder.org/cmdinfo/43978 23:39
Coke whiteknight: if you can track that down before I wake up sunday, merge it. 23:44
whiteknight Ah, I got it. I screwed up a bit of bison esoterica 23:45
also, it looks like a function got mangled in the merge
I used %token <t> when I should have used %token <sr> 23:48
lucian oddly enough, on my gf's laptop, 11.04 manages to sleep without locking up, previous ubuntus didn't 23:53
whiteknight lucian! 23:54
lucian whiteknight: ? 23:55
whiteknight lucian: We don't see enough of you 23:57
also, how is your project goin?
dalek rrot: f957d20 | Whiteknight++ | / (17 files):
Merge branch 'whiteknight/imcc_tag'
rrot: 5f0a29c | Whiteknight++ | / (4 files):
I used the wrong %type for subtags rule in imcc.y. Fix that to make g++ shut up. Fix a function declaratio and prototype that got mangled/lost in the merge
lucian whiteknight: meh, not great
23:57 soh_cah_toa joined
lucian RL's been taking up much of my time 23:57
also, debugging on parrot sucks 23:58
soh_cah_toa ;)
23:58 benabik joined
benabik o/ 23:59