pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:43 raiph left 01:03 jhorwitz left 01:18 sri_work left
scrottie awwaiid: just FYI, the MUD is up again... but not the IRC proxy. I'll have to install modules for a while to get that going again. 01:38
01:45 cognominal left 01:52 cognominal joined 02:04 Schwern joined
Schwern What's the syntax for a subroutine parameter that has both a trait and a default? 02:04
sub foo ($arg = 42 is rw)? sub foo ($arg is rw = 42)? Neither looks right.
Parrot accepts sub foo($arg is copy = 42) but I have a feeling that's by mistake rather than by design. 02:08
s/mistake/accident/
02:10 Ontolog joined 02:17 kanru joined 02:20 wknight8111 left 02:28 r0bbyarrr is now known as r0bby 02:43 justatheory joined 03:37 eternaleye_ left 03:52 anomaly joined 04:00 cdavaz joined 04:01 anomaly left 04:10 scrottie left 04:13 eternaleye joined 04:45 Squern joined 04:56 Schwern left 04:59 cdavaz left, _Ontolog_ joined 05:02 _Ontolog_ left 05:46 sri_work joined 05:49 justatheory left 05:52 Psyche^ joined 05:55 BinGOs joined 06:04 Patterner left, Psyche^ is now known as Patterner 06:07 yves left 06:14 yves joined 06:28 barney joined 06:29 eternaleye left 06:31 ashizawa joined 06:46 eternaleye joined
Ontolog moritz_: !!! 06:47
pmichaud: !!!
06:49 smg left 07:02 Squern left
Ontolog wrt regexps: [ ... ] has changed its meaning from perl5 to perl6? 07:03
like "cat" ~~ /[hat]/ wouldn't match?? 07:04
07:09 alanhaggai left
Ontolog hmm, i see not its "cat" ~~ /<[hat]>/ yes? 07:10
s/not/now
literal yup 07:11
07:12 cosimo joined
literal and it looks like they changed the range syntax as well, now it's <[A..Z]> 07:13
07:14 zamolxes left, alanhaggai joined 07:16 barney left
Ontolog interesting... 07:21
I wonder what is the point of something like <null>
when would you ever use something that always matches??
moritz_ as a default 07:23
sub check_something($some_param, $regex = /<null>/) { ... }
Ontolog hrm... i see
nice to see you are in moritz_ 07:24
07:24 pmurias joined
Ontolog did you see my latest patch? 07:24
moritz_ yes, but no time yet to test/review/apply
pmurias ruoso: re running the node instead of emitting it, you mean in memory (pugs embedding smop) or just supporting -B? 07:26
s/node/mold/
Ontolog moritz_: a bunch of tests failed but i don't think it has anything to do with my changes 07:28
moritz_: many tests not related to split fail, also the split test fails like this: t/spec/S29-str/split......Statement not terminated properly at line 118, near "split_test" 07:29
moritz_ Ontolog: yes, split.t uses meta operators which aren't yet implemented in rakudo 07:31
Ontolog: which is why I write split-simple.t
07:43 zophy[] joined
Ontolog split.t normally passes 07:46
rakudo_svn r31333 | moritz++ | [rakudo] fix prototype of Any.split(Str), and implement the limit argument.
r31333 | moritz++ | Ontolog++, patch courtesy by Chris Davaz
Ontolog i'm saying that something else has gone wrong and all sorts of test are failing
moritz_ Ontolog: since when?
Ontolog since today i just tried 07:47
let me get the rev number
moritz_ I mean split.t passing
Ontolog 31220
moritz_ I have a clean 'make spectest_regression' both with and without the patch
Ontolog hmm... why am i getting failures
strange
moritz_ did you try a 'make realclean' in the parrot dir? 07:48
and then rebuild
Ontolog nope i'll do that
zophy[] is there a perl6 drop in replacement for perl5 ? 07:51
moritz_ not yet
07:51 elmex joined
Ontolog after rebuilding a clean parrot, `make` in languages/perl6 doesn't work 07:54
no rule to make target 07:55
moritz_ did Configure.pl succeed?
Ontolog oops! sorry idiocy on my part
only did configure actually i didn't `make` parrot
pmurias audreyt: ping 07:59
08:20 smg joined 08:31 Alias_ joined 08:33 xinming joined 08:35 xinming_ left
Ontolog why use the binding assignment here? my $past := PAST::Block.new( :blocktype('declaration'), :node( $/ ) ); 08:43
moritz_ because NQP doesn't support assignment
Ontolog interesting 08:45
where is $/ documented?
i have no idea what it is but i see it everywhere
moritz_ it's the match object described in S05 08:46
Ontolog ah, i see, i'll take a gander 08:47
btw my tests are still failing!
i did a clean build and everything
moritz_ which tests are failing?
Ontolog for example on split.t I get t/spec/S29-str/split......Statement not terminated properly at line 118, near "split_test" 08:49
i will run another spectest_regression and see the others
moritz_ Ontolog: split.t isn't part of 'spectest_regression' 08:50
Ontolog really?
oops
but i did have tests in spectest_regression getting the same kind of failure
08:57 [particle] left 08:58 [particle] joined 08:59 zamolxes joined 09:09 smg left
Ontolog yay tests pass 09:11
if I have something like: method statement($/) { ... } does this mean statement() wants to change the value of $/ for the caller? 09:13
09:13 zamolxes left, wknight8111 joined 09:18 zamolxes joined 09:19 jferrero joined
moritz_ no... 09:21
but if it's called from a regex, it can change the caller's $/ by calling 'make' 09:22
Ontolog ahh so that's what that 'make' is for haha 09:23
thanks
I thought rules are just regular expressions, so why do we have something like: rule assignment { <primary> '=' <expression> } where the '=' is quoted 09:27
09:27 jiing_ joined, zamolxes left
Ontolog if I have $string ~~ /'='/ isn't that going to match all 3 characters literally? 09:27
Juerd It is 09:28
Oh, this is #perl6 09:29
No, it'll match just a single =
Ontolog: Regex language has been re-invented, entirely.
Ontolog: See p3rl.org/S05
moritz_ Ontolog: in Perl 6 regexes all non-word charcters needs to be quoted to match literally 09:30
Juerd Quoted or escaped
Ontolog ahhh 09:31
why? haha
in case we want to use them in future syntax?
Juerd Ontolog: See p3rl.org/S05
Ontolog it's SO BIG
Juerd Ontolog: That, and predictability of the language
Ontolog i was looking at it but it's just too much
Juerd You don't have to read it all today 09:32
Take your time :)
Ontolog baby steps
haha
I also don't really understand what {*} does 09:33
and that one is not in s05
moritz_ Ontolog: it calls a method of the same name in the action grammar
Juerd It's a very short way to say: do something here 09:34
Ontolog i see
so it only calls the method if it is next to a part that matches?
moritz_ the regexes are worked from left to right
09:34 pmurias left
Juerd At least conceptually 09:35
moritz_ if everything on the left matched, the method that corresponds to {*} is called
09:35 clintongormley joined
Ontolog for example: rule expression { | <string_constant> {*} | <integer_constant> {*} } here does {*} get called once or twice? 09:35
moritz_ Ontolog: since only one of the alternatives matches, only once
09:35 iblechbot joined 09:38 pmurias joined 09:40 pmurias left
ruoso @tell pmurias running as embedding, creating the mold object, then the frame, goto'ing to it and then running the interpreter loop... without generating and compiling C code... (that should allow us to have an evalbot) 09:46
lambdabot Consider it noted.
09:53 aindilis joined 10:30 ruoso left 10:35 wknight8111 left 10:39 smg joined 10:48 Ontolog left 11:04 zamolxes joined 11:08 pmurias joined 11:11 wknight8111 joined 11:19 alanhaggai left, alanhaggai joined 11:26 kanru left 11:29 kanru joined
pmurias @tell ruoso i guess i could make pugs do it as i'm blocked on the lack of declarations in PIL1 11:37
lambdabot Consider it noted.
11:41 Ontolog joined 11:42 Administrator joined, sri_work left 11:44 Administrator is now known as xiaoyafeng
Ontolog xiaoyafeng: hey man 11:48
12:12 ashizawa left 12:33 BinGOs left 12:40 BinGOs joined 12:43 zamolxes left 12:47 wknight8111 left 12:53 Fronty joined 13:00 alanhaggai left 13:04 pmurias left 13:23 Auzon left 13:33 Alias_ left 13:38 Ontolog left 13:45 Ontolog joined, smg left 13:46 xiaoyafeng left
diakopter raiph: did you need something 13:48
13:49 pmurias joined 13:50 masak joined, jhorwitz joined
diakopter pmurias: howdy; what's the news 13:51
pmurias diakopter: howdy 13:52
lambdabot pmurias: You have 1 new message. '/msg lambdabot @messages' to read it.
pmurias diakopter: i'm fighting pugs not having my declarations in the intermediate language in order to make variables for in the pugs smop backend 13:53
masak Ontolog: re #59184, it's known to the extent that at least one other RT ticket talks about precision (namely #57790) 13:54
diakopter blinks at "pugs smop backend"
diakopter been away for a while
pmurias you know what smop is? 13:55
13:55 xiaoyafeng joined 13:57 zamolxes joined
diakopter :) 13:57
sorta; I went away before ruoso's return
pmurias www.p3rl.org/smop
masak @tell Ontolog re #59184, it's known to the extent that at least one other RT ticket talks about precision (namely #57790) 13:58
lambdabot Consider it noted.
13:59 xiaoyafeng left 14:01 TJCRI joined 14:02 abra joined
masak perl6: while * { say "What-EVER!"; exit } 14:04
p6eval pugs: OUTPUT[What-EVER!ā¤*** Unsafe function 'exit' called under safe modeā¤ at /tmp/a9bdRs5NCy line 1, column 29-34ā¤] 14:05
..elf 22308: OUTPUT[Undefined subroutine &GLOBAL::whatever called at (eval 121) line 3.ā¤ at ./elf_f line 3861ā¤]
..rakudo 31334: OUTPUT[What-EVER!ā¤]
masak why would 'exit' be unsafe?
anyway, I was going to ask if people think that 'while *' will be a common idiom in Perl 6... 14:06
...but then I remembered that 'loop' already does that :P
moritz_ masak: because the old evalbot didn't spawn a separate process, or something
masak moritz_: ok. so there's no reason for it anymore?
so, if I got a round tuit, no-one would complain if I removed 'exit' from some list of unsafe functions? 14:07
moritz_ I don't see how that could hurt 14:08
masak where is p6eval, btw? 14:09
examples/network/evalbot/ ? 14:10
or misc/evalbot/ ?
moritz_ masak: that's the old one. The new one lives in misc/evalbot/
masak oki
pmurias diakopter: once pugs can compile perl6 to m0ld (smop assembly language) it should be much easier to add functionality to smop 14:13
14:16 charsbar left, charsbar_ joined
Ontolog perlbot: what did masak say? 14:17
lambdabot Ontolog: You have 1 new message. '/msg lambdabot @messages' to read it.
Ontolog oops it's lambdabot 14:18
yes i took a look at those tickets
i'm not sure if they are related in any way
masak they are.
Ontolog moritz_ says it's about stringifying integers 14:19
masak Ontolog: if you go above 1e6, Parrot starts losing precision
Ontolog ohhhh
i see sorry
moritz_ with integers?
Ontolog so that's why the number gets parsed out all funny
masak Ontolog: aye.
pugs_svn r22309 | masak++ | [src/Pugs/Prim.hs] promoted &exit into a safe function
Ontolog moritz_: 102030405.split(0)
rakudo_svn: 102030405.split(0).perl 14:20
rakudo_svn: 102030405.split(0)
moritz_ rakudo: say 102030405.split(0).perl
Ontolog perl6: 102030405.split(0)
p6eval rakudo 31334: OUTPUT[["1.", "2", "3e+", "8"]ā¤]
pugs: RESULT[("0",)]
..rakudo 31334: RESULT[["1.", "2", "3e+", "8"]]
..elf 22308: OUTPUT[Can't call method "split" without a package or object reference at (eval 115) line 3.ā¤ at ./elf_f line 3861ā¤]
masak moritz_: yes, with integers. Parrot sort of gives up and treats it as a floating-point number
Ontolog 1.23e+8 haha 14:21
moritz_ masak: that's bad. 1e6 isn't even close to 2**31-1, or whatever INT_MAX is
masak Ontolog: no, 1.0203e+08 :)
Ontolog 1.0203e+08?
yes
moritz_ rakudo: say 102030405.split(/0/).perl
p6eval rakudo 31334: OUTPUT[["1.", "2", "3e+", "8"]ā¤]
Ontolog rakudo: say 102.split(0).perl 14:22
p6eval rakudo 31334: OUTPUT[["1", "2"]ā¤]
Ontolog rakudo: say 10203.split(0).perl
p6eval rakudo 31334: OUTPUT[["1", "2", "3"]ā¤]
Ontolog rakudo: say 1020304.split(0).perl
p6eval rakudo 31334: OUTPUT[["1.", "2", "3e+", "6"]ā¤]
moritz_ perl 5 preserves 100000000000000, but converts 1000000000000000 to 1e+15 14:23
14:26 eternaleye left
Ontolog moritz_: I'll get on updating that test script (yeah I know manual testing doesn't scale =p) 14:26
what is #?DOES 4 14:27
it looks like we can take out the #rakudo skip line for there
but i'm not sure what #?DOES 4 does
moritz_ if it works, take it out
it just tells the preprocessor that there are 4 skipped/todo'ed tests in that block
Ontolog: you can simply remove the #?DOES 4 and the #?rakudo skip line+ 14:28
four more passing tests ;)
Ontolog moritz_: yep, i'll add some more tests about the limit stuff and send it to you tomorrow 14:30
gotta go to bed now
moritz_ Ontolog: you can commit those changes yourself, the test files live ini the pugs repo 14:31
masak Ontolog: sweet precision dreams
14:31 mncharity joined
masak moritz_: it _is_ bad. I'm longing to write my MD5 routines, but with this low precision roof, I can't use all the cool bit operators in Perl 6 14:31
instead, I have to fake them using strings
pugs_svn r22310 | moritz++ | [t/spec] unfudge some tests in split-simple.t, implemented and noted by
r22310 | moritz++ | Ontolog++
Ontolog moritz_: ohh yeah forgot about that
moritz_ masak: if you want anything close to sanity, you'll be using NCI and a C implementation 14:32
masak moritz_: good idea.
pugs_svn r22311 | putter++ | [elfish/on_sbcl] README corrections (minor).
masak I haven't looked deeper into that, but maybe I'll do it in connection with the upcoming mysql NCI adventures 14:33
pmichaud low precision: the low precision only occurs when stringifying numbers 14:39
more precisely, when stringifying floats
moritz_ rakudo: say 10000000
p6eval rakudo 31334: OUTPUT[1e+07ā¤]
moritz_ rakudo: say 10000000.WHAT
p6eval rakudo 31334: OUTPUT[Intā¤]
pmichaud you're actually missing a couple of important steps there :-)
the process of converting "1000000" to a number involves a Float. 14:40
moritz_ ouch
Ontolog is there some way to test "ab1cd12ef".split(/\d+/, 10000000000000000) doesn't iterate 10000000000000000 times?
pmichaud why would it iterate 100000000 times? If it does, that's wrong.
Ontolog of course
that's what i want to write a test for 14:41
pmichaud I mean, if it would even be possible, then it's implemented wrong
Ontolog yes it's not implemented that way of course i just want to test edge cases
moritz_ Ontolog: you could, with some regex magic that's not implemented yet in rakudo
pmichaud tests typically only look at correct output values, not performance.
(unless the construct is a performance-related item.)
Ontolog i guess i'll skip this one then
moritz_ with a code assertion that increments a counter, for example
Ontolog moritz_: interesting... i'll check it out once that 'magic' is implemented 14:42
pmichaud phrased another way: there's nothing in the spec that says that 'split' cannot iterate 10000000000000 times :-)
moritz_ pmichaud: except the "where not specced, same as perl 5" part - if perl 5 doesn't 10000000000000 times, Perl 6 may not either ;-) 14:43
pmichaud if there's a perl 5 test that verifies that split doesn't iterate 100000000000 times, I might buy that argument. :-) 14:44
masak I'm glad we got this sorted out.
:P
pmichaud anyway, the problem with large ints and floats is RT #59006. I'm a little disappointed that it's being warnocked. 14:45
masak I'm more disappointed that #58392 is being warnocked.
moritz_ let me guess: recursion/lexicals? 14:46
masak moritz_: aye :(
pmichaud masak: I've heard you. My response would be "this is a hard problem."
masak moritz_: soon you too will know that ticket number by heart.
moritz_ masak: aye
pmichaud so, I can de-warnock it by responding that solving it is going to be really tough.
masak pmichaud: yes, I understand.
pmichaud: all publicity is good publicity :)
moritz_ maybe that's a topic for tomorrow's #ps? 14:47
pmichaud moritz_: probably not, other than if people want to carp at me that it's not solved yet. :-|
masak got to go -- there's a lecture about China's idea history in 15 minutes
14:47 masak left 14:48 cjfields joined
pmichaud I was going to see about fixing array, hash, and object references today, but I guess I could switch over to coming up with the new lexicals draft instead. 14:48
moritz_ pmichaud: "If you or Carl can provide a PIR program which exhibits he problem, I'll fix
it." -- chromatic
pmichaud "the problem" in this case is a completely broken lexicals design
(in Parrot)
moritz_ :-( 14:49
pmichaud so while I might be able to come up with a PIR program that evokes the bug, I'm doubtful it can be "fixed"
at least, not by a simple patch.
just a sec, I'll find the (incredibly long) thread that talks about the problem :-) 14:50
(also, Jonathan provided a PIR program in #58392. :-)
moritz_ I know, that's why I quoted chromatic 14:51
pmichaud RT #56398 talks about the various problems with Parrot's lexicals implementation, but it'll make your eyes glaze over. 14:52
14:53 hercynium joined
pugs_svn r22312 | cdavaz++ | Added limit tests to split-simple.t 14:54
moritz_ Ontolog: I believe these tests are not quite correct 14:56
Ontolog moritz_: really?
what's wrong
moritz_ Ontolog: if the limit is present, the last item should contain the rest of the string 14:57
$ perl -wle 'print for split /\d/, "a1b2d343r", 2'
a
b2d343r
Ontolog haha then my implementation is not correct 14:58
didn't realize that
moritz_ it's not specced in S29, so it's only by analogy
anyway, I'm not angry if you sleep first ;)
Ontolog :p thanks! gotta get to bed my wife is getting annoyed 14:59
looks like i got something to do tomorrow
moritz_ ;)
Ontolog &
pmichaud can RT #59064 be closed? 15:04
moritz_ aye 15:08
pmichaud: are you doing it, or should I? 15:12
15:15 smg joined
mncharity Ontolog: if you are still around, a response to your "p6 development seems unfocused" observation of yesterday(?) is getting sketched out. 15:32
been a while since I did a #perl6 missive. ;)
15:33 eternaleye joined
mncharity Ontolog: re Perl 6 "project" focus, my take on what you are seeing is this. Big picture, P6 has three parts. Language design, Parrot, and Pugs. You are living inside the infrastructure Pugs built. svn, evalbots, test suite, #perl6. 15:36
100+ people worked on Pugs. 1 of them was a critical. Since aside from being technically critical, they also provided community focus, leadership, and project management, as they started to phase out, there wasn't enough management or leadership left to address it or recover.
Little-p pugs stopped one step short of making replacing it straightforward. It's parser doesn't export oo information, and it's not robust enough to run a parser- or compiler-sized program. 15:37
Since then, the shape of Pugs has been dominated by three inter-related factors. Lack of momentum, extreme scarcity of developers, and absence of any leader with a technical vision widely considered plausible, and the time commitment to build a community around it. 15:38
There are various technical (wiki), social (perl culture), and historical ("Parrot is Perl 6, yes?") why this hasn't been easier, but that's a separate topic.
Parrot seems to be dominated by the same 3 factors. Though the symptoms are different. Pugs is stuck on a blocker (parsing). Parrot is happening slowly. 15:39
All the little non-Parrot projects you see are attempts to pick up the Pugs pieces.
There have always been lots of workable approaches. But you get the following effect. If someone has what you believe is a flawed approach, but there is momentum and effort behind it, you don't mind the flaws. If it's good enough to make progress on, then it can be used to build something better. 15:40
Specifically, when you hit bugs that block what you are trying to do, there is the prospect of their being rapidly fixed, instead of killing your project for months, or squandering your effort looking for workarounds. For a couple of weeks, pugs was "you find a bug, we strive to have it fixed the same day".
So that leaves people working on projects they believe in, and for which they can easily address blockers. So you get one and two people projects in Pugs. Plus bottom-up "it won't work, and doesn't need to, until late in the project" Parrot. 15:42
excess comma
So that leaves people working on projects they believe in, and for which they can easily address blockers. So you get one and two people projects in Pugs. Plus bottom-up "it won't work, and doesn't need to until late in the project" Parrot.
So, taking myself as an example developer, the whether/where I should work equation looks like this. With a parser grammar done, and perhaps the oo core at least largely speced, Language design no longer seems on the short-term critical path. 15:44
That leaves various Pugs bits, and Parrot. There are four potentially active Pugs bits. Two top-down (elf and kp6) and one bottom-up (smop) pugs replacements, and the potential for pugs itself to wake up. I don't consider kp6 viable, and at this point, elf seems clearly better.
Smop definitely helps shake down the oo core spec, and might make an nice backend. But it's only a backend. Currently using the old mortibund oo-less pugs parser. So it either needs to get a working frontend, elf, rakudo, or awakened pugs, or it can build out to being a complete implementation (hard). 15:45
So while useful, it doesn't seem to have near-term potential for attracting developers back to p6.
On the Parrot side, regardless of what one thinks of the parrot vm, rakudo is not yet at a place where you can sit down and write major p6 at it. It's not quite where pugs was some years ago, able to run lots of programs, but not large ones, and struggling to move the prelude into being p6. 15:46
And for myself, the historical rakudo bottom-up PIR-based approach to language implementation has the double wammy of my thinking it badly flawed, and zeros the chance that my blocking bugs will get any of the scarce parrot resources. So rakudo may plod to becoming a pugs replacement, and get Pugs unstuck that way. But this doesn't seem a short-term prospect, or a good place to allocate my own time. If it was the only p6 game in 15:47
no doubt clipping
But this doesn't seem a short-term prospect, or a good place to allocate my own time. If it was the only p6 game in town, I'd punt on p6.
So that leaves me working on elf. Which I believe quite close to becoming a pugs substitute sufficient to get Pugs unstuck and, hopefully, attract developers back to p6. Haskell could well be a better core language for a p6 compiler than p6. But the chances of attracting hs developers seems even smaller. 15:48
second half of that was a bit rough. still missing some core concepts - ie, trying to attract p6 compiler developers to pugs or elf in the near future, vs just waiting for parrot to mature. but, that's my quick take on why things look like they do, p6 implementation(s) wise. 15:50
questions/comments/thoughts/musings/whatever, as always, would be most welcome. :) 15:55
Juerd mncharity: I'm not sure if IRC is the best platform for writing a book ;) 15:57
15:57 eternaleye left
mncharity spinclad: avar: pmurias: anyone else: elfish/on_smop now has oo working well enough that the p6/cl hybrid prelude is being fleshed out. feel free to jump in. 15:57
Juerd: :) yeah, it did get long. but the first half at least seemed contentful, rather than low density. 15:59
besides, my doing big picture irc notes is a tradition. ;) even if it's been a long while since the last. 16:00
avar mncharity: yeah I saw that cl stuff
mncharity re cl stuff, as of last night, oo seems usable. sufficient for a hopefully-rsn elf bootstrap at least. 16:02
hmm, rsn in development time. calendar time is less clear. 16:03
cognominal mncharity, is there any place where there is a comparative description of the project you site. Most people have no knowledge of anything but pugs and parrot. 16:04
s/site./cite?/ 16:05
avar svn down?
mncharity avar: thoughts/feedback/comments/critiques/whatever would be most welcome. ruby polite bluntness, python professionalism (or MIT not necessarily polite bluntness:). No need for the talk around issues, avoid disagreements, etc, which sometimes seems to characterize Pugs at least. 16:06
avar o_O 16:07
mncharity cognominal: I'm unclear on what "the project you cite" refers to?
avar elfish 16:08
mncharity comparison of elf with {pugs, parrot}? 16:09
pmurias mncharity: hi 16:10
mncharity hi pmurias
pmurias smop has a very limited elf frontend 16:11
cognominal I meant plural: elf, smop and kp6
mncharity not that I know of. 16:12
moritz_ avar: re svn down, now up again 16:13
(had to delete some semaphores)
cognominal Speaking of manpower, I think parrot will attract more people once decent language implementation other than Perl 6 will be available.
mncharity smop has some pages on the perl socialtext wiki. elf has perl.net.au/wiki/Elf but little comparison. kp6, not that I know of.
lambdabot Title: Elf - PerlNet
cognominal this generality has slowed down parrot but this is an asset in the long term.
pmurias kp6 is dead 16:14
moritz_ Juerd: iirc you have script that kill -9's apache on feather - it should also free semaphores, similar to blog.eukhost.com/webhosting/mod_rew..._log_lock/
lambdabot Title: mod_rewrite: could not create rewrite_log_lock | UK Web Hosting | Linux Windows ..., tinyurl.com/3uv25a
pasteling "avar" at 208.78.101.240 pasted "elfish fail" (34 lines, 1.6K) at sial.org/pbot/32248
moritz_ Juerd: what I did now was ipcs -s | grep www-data |perl -nle 'm/(1\d+)/ && print $1'|xargs sudo ipcrm sem
avar urgm
mncharity cognominal: do you have any particular languages in mind? 16:15
cognominal no.
to my knowledge, none has attained a critical mass. 16:16
Juerd moritz_: Please change the script 16:17
mncharity was that a 'another language will help attract developers' 'to maintain parrot once p6 is working', or 'to develop parrot and get to p6 working'?
Juerd moritz_: /usr/local/bin/incredibly_ugly_hack_to_restart_apache
mncharity or both. :)
moritz_ Juerd: ok, done 16:19
trying it now 16:20
16:20 Exodist joined
cognominal mncharity, both, for example .hll_map is clearly is a parrot thing to make diffirent language to communicate. 16:20
different languages... 16:21
mncharity ok, let's see.... python seems a non-starter culturally. ruby seems unlikely resource-wise, there are several fish frying, and parrot doesn't offer much beyond what already exists for ruby. javascript is headed full speed the other way, towards wizzy custom jits. 16:22
Juerd moritz_: Thank you
moritz_ cognominal: and yet there's no proof of concept implementation of language interoperability in parrot
mncharity lua and tcl are relatively easy to implement. though both communities tend to focus on light-weight implementations. 16:23
moritz_ Juerd: it will print out an ugly error message of there's no semaphore to remove, but it does no harm
mncharity big picture, what are potential selling points for parrot vis these various communities?
interoperate with other languages (long-term at least). other? 16:24
moritz_ basically "using other language's libraries"
cognominal eventually, the selling point is the one of static languages : you can use a library written in another language. like moritz_ says, this not yet a reality
[particle] a vm built for their language, rather than a bolt-on addition to a static vm to support dynamic languages 16:25
mncharity: you really need to learn to use email or blogs for your missives. the audience in this channel who reads these can be counted on three hands
cognominal .NET or Java moving to parrot ?
mncharity I don't know enough about the current state of LLVM for instance, and python's efforts on it, to comment. 16:26
moritz_ [particle]: all these languages have their VM already, no?
16:26 Lorn joined
moritz_ mncharity: llvm is probably not high-level enough to be used directly with dynamic languages 16:26
[particle] moritz_: there are multiple implementations of all these languages
cognominal I thought that the next version of ecmascript would be a good candidate for parrot, but they have killed it. 16:27
[particle] who is they?
mncharity so, "use a library written in another language". so we're looking for a language which needs libraries, and doesn't have a NIH-reimplement culture.
[particle] nih?
mncharity What libraries are on offer? p5? python?
not invented here 16:28
cognominal ruby seems have good gems
moritz_ p5 libs would be a real killer app, but that's not yet feasible
cognominal s/have/to have/
16:29 justatheory joined
cognominal so many p5 libs transitively depend on some xs module :( 16:29
[particle] mncharity: parrot already lets you use sdl, mysql, and other c libs from perl 6, ruby, and even (potentially and easily) lolcode
mncharity Using ruby libraries from another language... maybe. The syntactic form plays more of a role in rb than in pl or py, so I suspect rb libraries are will in general tend to be of less use. but maybe still of interest. 16:30
[particle] cognominal: who "killed" javascript?
embed parrot in your browser. run embedded code in any language parrot supports
*run embedded code *from* 16:31
mncharity [particle]: languages tend to have their own ways of using c libs, so I'm not sure that's a selling point? or I'm just missing it.
[particle] parrot has an api built in
pmcs are abstract data types. they define a storage mechanism and access methods.
pmurias [particle]: if you get parrot embedded in IE i would help with parrot 16:32
cognominal particle: harmony :)
mail.mozilla.org/pipermail/es-disc...06837.html
lambdabot tinyurl.com/483ghy
cognominal they have choosen ES3.1 insteand of ES4.0
mncharity are what were the JS2.0 dev efforts going ahead, or has the whole community melted down? 16:33
cognominal ES4.0 has lot of in common witth Perl 6 like a combination native types and boxed types
[particle] cog: i had no ideal! wow.
*idea
crap, i liked js 2.0
mncharity M$ didn't. ;) 16:34
cognominal I think mozilla has an partial implementation of js 2.0
[particle] yeah, well, if they'd need to invest some serious money into their vm to make it even more dynamic-friendly and performant 16:35
they=ms
mncharity and silverlight. and "it would be in our best interest if this all _didn't_ start working for a few more years_". ;) 16:36
cognominal what is funny is that they emulate closed class composed of native type as part of their optimizations (squirrelwathever, chrome))
mncharity lol
re squirrelwathever 16:37
cognominal I should like to see parrot in browsers.
pmurias mncharity: do you know that elf wouldn't actually pass sanity tests if prove was as strict as the tests assume it is?
(look at 02-counter.t) 16:38
cognominal ha SquirellFish is from webkit
mncharity pmurias: yes, noticed a couple failing when moritz_ inquired about faster test alternatives. 16:39
but counter should be working. as in, I had to explicitly fix it.
elf doesn't use foofix:<++>, so it stopped working without being noticed. 16:40
pmurias it print ok $counter 16:41
mncharity are you sure you are current?
pmurias elf_g?
mncharity yes. I'm looking...
$ prove --exec ../elf_g ../../../t/01-sanity/02-counter.t ../../../t/01-sanity/02-counter....ok All tests successful. 16:42
so yes, JS 2.0 nifty language. sad to hear of difficulties. 16:43
cognominal who know, that may be the way of parrot to browsers :) 16:44
...implementing javascript 2.0 16:45
mncharity re exposing libraries, the needed features would seem to be: () can expose either p5 or py libraries (I'm not sure anyone else's has enough appeal to attract many developers from another language). () stable enough to be used in production (other wise the existence of libraries seems of little appeal). ()... anything else...? 16:46
pmurias mncharity: look at ./elf_g ../../../t/01-sanity/02-counter.t
mncharity looking...
pmurias mncharity: java's libraries might have appeal 16:47
mncharity re look at, cute. hmm, let's see...
oh, yeah. STD_red doesn't do full "string" parsing. Doesn't pull out vars. 16:50
Suspect STD.pm didn't have it working the last time STD_red synced. Quite a while ago now. 16:51
STD_blue will fix.
My debug path was elf_g -v , looking at the generated output, then the IR tree, then the AST.
Lack of "a $b c" is why the elf code says "a "~$b~" c" everwhere. 16:52
re java libraries, oh, there's an interesting idea. though most languages now have their own java implementations. python, ruby, lua, tcl, ... 16:53
perhaps leaving us back with just pl and py libraries. 16:54
16:54 |Jedai| joined
cognominal and ruby gems 16:54
16:56 cotto_work joined
mncharity perhaps.:) I'm not quite buy gems as a selling point to ... whom? py - no. lua? seems unlikely. I don't know who would want them. 16:56
16:58 rindolf joined
mncharity correction: My debug path was elf_g -v , looking at the generated code at bottom. Then at counter.t, pulling out a single line, and feeding it to elf_g -v -e. And _then_ at it's generated code (one line), up at the IR tree, and then at the AST on top. 16:59
17:00 meppl joined 17:01 kanru left 17:02 |Jedai| left
pmurias mncharity: people from other languages interested in vm hacking propably are familiar with their own vm and unlikly to switch to parrot 17:03
[particle] including mncharity ;) 17:04
17:04 jferrero left
mncharity could be. certainly it would seem significant language X use of parrot would likely preceed many language X vm devs working on parrot instead of language X's vm(s). 17:05
lol
"certainly it would seem significant language <P6> use of parrot would likely preceed <mcharity> working on parrot instead of ..." 17:06
17:06 kane_ left
mncharity hmm. though that's not quite right. emphatically not working on a vm. I'd consider that an insane place to start when the objective is to implement a high level language. 17:08
with the possible exception of some very kernel-y high-level langauges, with a really simple but heavily used core, which almost has to be in C or assembly to start with, or you can't get much of anything working. and the bottom-up langauge architecture means you don't take a "not working at the right level" hit. 17:10
17:13 eternaleye joined
mncharity didn't mean that as any kind of a backhanded parrot dig. was just responding, and, well, my language design instincts are very different than the historical parrot->rakudo approach. 17:14
17:14 pmurias left 17:15 fridim_ joined, pmurias joined 17:19 Chillance joined 17:21 ruoso joined
mncharity hmm. so elf-wise, three possible places to push. () STD_blue, and associated src/perl6/STD.pm and gimme5 debugging; () finish getting a p5/p6 rx engine into elf; () Getting the CL backend capable of compiling elf itself, and associated elf IR analysis improvements. 17:22
"we can use STD! (externally)", "fast rx, see!", and "elf self-compiles in < 5 sec! and runs t/ (poorly) in just n minutes!", being the respective immediate "wows". the first two creating a foundation for pulling STD into elf itself. 17:24
not sure if anyone cares. "fast elf" might be cute. but my hypothesis is there isn't going to be general interest until all 4 happen. 17:25
if anyone _would be_ interested in some subset, or in helping out, please feel free to let me know. :) 17:26
lunch, then work. I don't consistently backlog anymore, and @tell seems to be unreliable, so feel free to email me if you want to be sure I see. 17:28
have fun all :) &
17:28 mncharity left
pugs_svn r22313 | pmurias++ | [pugs][smop] 17:31
r22313 | pmurias++ | lexical variable work in pugs -Cm0ld
r22313 | pmurias++ | Pugs.Compile.compile marks lexical delarations in PIL1 although not fully correctly
17:32 eternaleye left
ruoso sometimes backlogging #perl6 is a hard work ;) 17:34
lambdabot ruoso: You have 1 new message. '/msg lambdabot @messages' to read it.
[particle] gave up backlogging #perl6 some time ago, and just today gave up backlogging #parrot 17:37
ruoso pmurias, hi 17:38
pmurias ruoso: hi 17:41
got the lexicals working ;)
ruoso cool
pmurias we could use some sort of s1p ROADMAP 17:42
ruoso right... at first I was thinking on taking the features needed by src-s1p/P6Meta.pm
pmurias, but I think we can keep it in the smop roadmap, can't we?\ 17:43
17:43 jferrero joined
pmurias ruoso: yes 17:43
ruoso the first thing on the list seems to be the "prelude lexical scope"
pmurias not sure, just importing a snapshot of GLOBAL in the top-file scope might be better 17:46
ruoso but it is very sane actually, if all names are lexically scoped
making $lexical.lookup for everything is quite sane
and thus a "prelude scope" that contains all the symbols that are present everywhere seems very natural to me 17:47
pmurias is playing with the cat so is a bit distracted
rakudo_svn r31339 | pmichaud++ | [rakudo]: Fix so that .trans doesn't modify its argument (RT #59204) 17:48
r31339 | pmichaud++ | * Patch courtesy Chris Fields (cjfields++)
17:50 zamolxes left
ruoso pmurias, www.perlfoundation.org/perl6/index....ical_scope 17:52
lambdabot Title: SMOP Prelude Lexical Scope / Perl 6, tinyurl.com/42qg3u
18:01 Fronty left
pmurias ruoso: how will unimportation of the stuff in the Prelude Lexical Scope work? 18:03
ruoso pmurias, well... one can see uninportation as re-definition...
pmurias, but is it even possible to unimport things from the Prelude? 18:04
pmurias i think so
ruoso but still... re-defining it to a failure is a way of doing it...
pmurias we would need a special scope with three states here,not here, and maybe in outer 18:05
ruoso but I mean... unimport is something like that 18:06
but only the scope that makes the unimportation needs to support that 18:07
it might even be a special scope ty
*type
pmurias i'm sure it can work, what are it's benefits over importing GLOBAL in to the top-most scope at the start of each file? 18:08
ruoso the need of doing the actual import? 18:09
I mean... not needing that...
you simply point the "Prelude Scope" as the "outer" and that's all
and not everything from GLOBAL is bound to the local scope 18:10
I mean, even the name "GLOBAL" needs to be defined in the prelude lexical scope
pmurias it seems to be a premature optimalisation 18:11
the imports from GLOBAL should be propably be optimised to late binding 18:12
ruoso I mean... eventually the Prelude Scope is the thing that has GLOBAL imported... 18:13
it just seems weird having GLOBAL imported every tim
pmurias it is a bit weird, but global being more special than other stuff from CPAN doesn't seem right 18:15
ruoso: and what happens when something changes GLOBAL?
ruoso in what sense? 18:16
pmurias if i add a function to GLOBAL 18:17
ruoso hmm...
is it supposed to be found by new code without a local bind?
pmurias i think so
ruoso and without a proper global mark? 18:18
since everything is lexical, that would look weird 18:19
pmurias maybe an is export?
ruoso btw... it's not GLOBAL that is special... I'm not sure &map needs to be defined in GLOBAL, it might simply be part of the Prelude 18:20
it's the Prelude that is special
pmurias yes, map should live in the Prelude 18:26
but i think it is the GLOBAL that should be special
ruoso: but what happens if someone changes the Prelude than? 18:27
ruoso well.. the prelude is something that can be static... right?
I mean...
I think what makes it a prelude is the fact that it's expected that it's up to the runtime to define it
it migth be overriden later... 18:28
but I don't see how someone can change the prelude during the runtime
rakudo_svn r31341 | pmichaud++ | [rakudo]: Fix Str.perl to better escape things (RT #59068). 18:36
pmurias ruoso: we have to change the prelude while setting it up 18:37
ruoso now *that* is something special
we even plan a different compiler to thta 18:38
18:40 timbunce joined
pmurias it's not worth discussing trivia so we may use the lexical prelude for now 18:41
ruoso heh 18:42
18:43 armagad joined 18:45 buubot joined, armagad left, armagad joined 18:49 armagad left 18:52 eternaleye joined 18:54 rindolf left, cjfields left
pmurias ruoso: one other argument for forward context propagation is perl5 interop 18:56
ruoso pmurias, :) again... I don't deny forward context propagation... I just think it should be implemented later... 18:58
pmurias ruoso: being able to write stuff in perl6 instead of m0ld/C is a priority right now so it can be moved a bit father on 19:00
19:05 jferrero left
ruoso anxious for having a smop evalbot :) 19:06
ruoso . o O ( that probably sounded weird in english... it's one of the bad transliterations of portuguese gramatical constructs... ) 19:07
19:10 frobnitz joined
pmurias ruoso: should i try to implement a smop evalbot? 19:11
ruoso that would mean embedding smop in pugs.
which is something cool anyway
[particle] "anxious to have" 19:12
ruoso pmurias, how hard you think it would be to instantiate the mold and the mold frame and then running it from pugs? 19:13
[particle]++ :)
19:13 timbunce left
ruoso pmurias, I think the hardest part will be the reference to arbitrary c symbols that are used by m0ld 19:14
mostly used as constants, I mean.. 19:15
pmurias actually that's easy
ruoso hmm... so there's no hard part ;)? 19:16
pmurias yes dlopen and friends
ruoso ah... ok... the "actually embedding" part ;)
pmurias yes, i don't know how to change the build process to link smop into pugs
ruoso well... in theory, it doesn't need to be compile-time-linked 19:17
you said well "dlopen"
pmurias hmm
shower&
19:19 jferrero joined 19:26 clintongormley left 19:28 timbunce joined
pmurias ruoso: using smop via dlopen would require lots of strangeness 19:38
19:38 timbunce left
ruoso why? 19:39
it just need to call smop_init() 19:42
then SMOP__Mold_create
then SMOP__Mold_Frame_create
and the rest happens in terms of SMOP_DISPATCH
pmurias to use dlopen i would have to fetch functins via dlsym 19:43
ruoso yes...
but you just need smop_init() SMOP__Mold_create, SMOP__Mold__Frame_create and the Global Interpreter 19:44
19:44 abra left
ruoso (ok... you might need to access native_int_create... const_identifier etc...) 19:44
19:44 zophy[] left
ruoso pmurias, we could create some sort of bytecode loader in smop itself... 19:45
pmurias thought about it too a bit
ruoso that somehow would initialize native instances...
pmurias accessing c vars from m0ld is just a workaround, we can fetch all we want from the lexical prelude 19:46
ruoso but that doesn't solve native ints and const identifiers 19:47
pmurias they would have to be store specially in the bytecode file
but i hesiate to do have a bytecode format before we finish all corners of mold 19:49
* hesitate 19:50
s/do have/have 19:51
ruoso indeed... although I'm pretty sure the only types that need to have special treatment in the bytecode are the native types... 19:53
everything else can be looked up in the lexical scope
19:55 hercynium left 19:58 silug joined
pmurias ruoso: why can't we have the evalbot use gcc? 19:59
19:59 eternaleye left
ruoso too many ways for it to behave badly? 19:59
20:03 johto joined 20:07 donaldh joined
pmurias ruoso: does make test in pugs root work for you? 20:07
ruoso tryign 20:09
20:09 zamolxes joined
ruoso pmurias, nope... it fails in what seems to be the first test 20:10
pmurias same here 20:11
ruoso but it's not a failure in the test... 20:12
but in Test::Harness
pmurias doesn't want to take over maintaining pugs... 20:16
ruoso: we should have a way to create a Mold and a Mold frame using smop dispatch 20:17
ruoso that's true...
the mold frame is easy...
the mold itself is a bit harder... 20:18
20:18 ispy_ joined
ruoso but I think two arrays should solve the problem... 20:19
does Array accepts new(1,2,3)?
pugs: say Array.new(1,2,3);
p6eval pugs: OUTPUT[*** Must only use named arguments to new() constructorā¤ Be sure to use bareword keys.ā¤ at /tmp/ktOH2CLLZF line 1, column 5-21ā¤]
pmurias ruoso: it should 20:21
ruoso: what env var should i use to specifiy where the smop library lives? 20:44
ruoso SMOP_LIBRARY_DIR? 20:47
ruoso later &
20:47 ruoso left 20:51 iblechbot left 20:52 wknight8111 joined 20:53 jferrero left 20:54 jferrero joined
pmurias sleep& 20:54
20:54 pmurias left 20:58 ispy_ left 21:02 donaldh left
araujo mmm.. 21:07
seems like #perl hates perl6
moritz_ #perl on freenode doesn't have exactly the best reputation 21:09
araujo well 21:10
I just got kicked by a "perl5 company" founder from the channel
because I asked why he said perl6 is a disaster for perl5
nice neurotic community they have there
moritz_ can't really understand the FUD about perl 6 out there 21:12
araujo moritz_, it's apparently bad for market 21:13
araujo guesses perl6 will be a good language then 21:14
21:14 simcop2387 left 21:17 simcop2387 joined 21:25 TJCRI left 21:27 explorer__ joined 21:42 jferrero left
cognominal araujo++ 21:43
sometimes I understand how rms can get aggressive when people laud him as the father of the open source like a mayor of an "arrondissement" of Paris a few month ago. 21:45
21:45 eternaleye joined
cognominal everyone wants an immediate eturn on an investment made by others. 21:45
21:46 dduncan joined, dduncan left
buu moritz_: Um? The fud is easy, people talked up perl6 4 years ago and nobody has seen it. 21:47
cognominal but in the case of that mayor, he was brave enough to try to undertsand what program code was all about and try do stand on the good side just to be chided by rms
buu 14:05 * araujo wonders if perl6 should be blamed by the today international bankruptcy cases
14:05 -!- araujo was kicked from #perl by mst [trolling]
cognominal buu, other bankrupcy today. 21:48
??
moritz_ buu: that may explain the "U" and the "D" part of "FUD", but there's the fear coming from?
buu moritz_: Announcing a new product that supercedes your current product before the new product is ready is generally a bad idea. 21:49
cognominal well, explain me how to conceal the development of a new product in the open source world. 21:51
if one follow that line of tought which may be valid commercially speaking he ought to stay in the closed source world. 21:52
or do like big companies that develop internally to open source later. 21:53
I dont see that happening for Perl.
21:54 smg left
moritz_ it can't, since it's supposed to be the community rewrite of perl 5 21:56
22:01 Lorn_ joined
araujo buu, can you also please paste the rest of the conversation and not taking words out of context please? 22:06
buu, can you paste the two lines above of it for example? 22:07
22:14 Lorn left
eternaleye buu: Also, Perl 6 doesn't suspercede Perl 5 - It is merely an evolution. Perl 5 will remain available for as long as people care about it. It's not like Perl 5 is going to be totally ignored by the maintainers just because Perl 6 is released. 22:16
*supercede
moritz_ we know that, but not everyone does 22:18
eternaleye Yeah. Fact is though, anyone who knows about Perl 6 should know, because it was released via the same channel - if they got one, they probably were notified of the other too. It's sad that people just don't actually go to the trouple to comprehend things properly and instead form a very rough mental idea of what's happening and then go haring off. 22:20
22:27 Limbic_Region joined 22:53 Lorn_ left 22:55 jan_ left 22:58 jan_ joined
buu eternaleye: Yes, it's tragic, but human nature is unlikely to change. 22:58
And people trying to change it generally lose.
eternaleye buu: That's because the people trying to change it don't have enough time to do so. We just need to solve mortality, so they have enough time :P 23:10
buu Mmmmmhmm.
23:10 sri_work joined 23:11 fridim_ left 23:18 buubot left 23:19 buubot joined 23:24 smg joined
cognominal eternaleye: may be that's the very opposite. some say that change is possible when tenants of obsolete ideas die 23:25
on the other hand, with eternity you have time to ripe fruit one new ideas instead of trying to capitilize on your old idea.
eternaleye cognominal: Perhaps we should solve morality, and just vote some people off the island XP 23:26
*mortality GEEZ
That would be BAD
cognominal s/one/on/
was that Kuhn who said that a new paradigm an take off when the tenant of the old one have died? 23:27
s/ an/can/
eternaleye cognominal: That reminds me, NPR recently did a story about a research study. The researchers would take some people, and show them a statement by a member of one party, and then a refutation by a member either the same or a different party, and repeated this many times. They found that, when it was a conservative being asked, and the original statement was made by a conservative, ANY refutation by ANY party merely 23:29
strenthened their conviction that the original statement was correct. Frightening, no?
cognominal No, if you have a short time of life, you must get a return on investment instead of jumping on every new idea. 23:30
conservative people want order. Free thinking is dangerous for order even if it can eventually bring a new better "order". So they got to stick to their guns (so appropriate with the NRA) 23:33
everyone selects idea that reenforce his own ideas.
eternaleye Hm 23:34
cognominal I like to watch the Apple ads to confort me I have done the right choice. I know it is stupid, but I do it anyway. At least, I am conscious of it
fullermd I'm always a little weirded out by "studies" that conclude that people believe their own conceptions are right.
If I didn't think my ideas were right, they wouldn't be my ideas in the first place. 23:35
cognominal one has got to provisionnally stick to some ideas. What is dangerous is to think that it is the only choice, that you belong to somehow elected people by some god or authority. 23:36
What I like in Perl, is that it is a crowd that believe in choice TMOWTDI
eternaleye Heck yes to that, cognominal 23:42
s1n @seen pmichaud 23:43
lambdabot pmichaud is in #perl6. I last heard pmichaud speak 8h 39m 1s ago.
cognominal ...even if the perl 5 crowd is very defensive. 23:50