»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
pmurias | general VM functionality | 00:03 | |
efficiency seems to imply avoiding Parrot's design ;) | 00:04 | ||
00:04
Chillance left
00:06
cognominal left
00:11
pmurias left
00:12
donaldh left
00:29
jeffreykegler left
|
|||
diakopter | oh, donaldh just left | 00:36 | |
NQP doesn't use Java's regex syntax for split :) | 00:38 | ||
00:40
hypolin joined
|
|||
swarley | Okay, so I need to figure out first of all what a vtable's purpose is | 00:47 | |
swarley opens vtables.pod | |||
Oh. So it's basically just a map of the functions? | 00:51 | ||
diakopter | phenny: tell donaldh I commented on your pull request's commit | 00:53 | |
phenny | diakopter: I'll pass that on when donaldh is around. | ||
00:58
xilo_ left
01:23
anuby joined
01:24
monktopher joined
|
|||
raiph__ | swarley: irclog.perlgeek.de/perl6/2013-02-03#i_6407438 | 01:25 | |
swarley | oh, so i don't have to bother with it? | 01:27 | |
oh seeing a parrot free implementation would be very helpful | 01:34 | ||
diakopter | nqp-jvm...? | 01:35 | |
swarley | That's a little more confusing though, because it looks so simple comparatively | 01:36 | |
I'm so confused by lexotic in the source tree | 01:37 | ||
Its just a sixmodelobject, with an extra long | 01:38 | ||
diakopter | look at line 1030 of JASTCompiler.nqp | 01:40 | |
QAST::OperationsJAST.add_core_op('lexotic', -> $qastcomp, $op { | 01:41 | ||
swarley | ah | ||
01:43
bluescreen10 joined
01:45
monktopher left
01:48
Targen joined
02:04
dayangkun left
02:18
FROGGS left
02:22
dayangkun joined
|
|||
ggoebel | A bit old, but interesting on the performance considerations for languages implement on jvm... blog.headius.com/2011/10/why-clojur...namic.html | 02:27 | |
02:30
MikeFair__ left
02:31
MikeFair joined
02:32
FROGGS joined
02:40
dayangkun left
03:14
benabik joined
03:19
silug left
03:31
silug joined
03:38
dayangkun joined
04:17
Pleiades` left
04:19
fgomez left
04:20
fgomez joined
04:21
Pleiades` joined
04:30
MikeFair__ joined
04:31
MikeFair__ left
05:01
preflex left
05:02
preflex_ joined,
preflex_ is now known as preflex
05:04
SamuraiJack joined
05:18
xinming_ joined
05:22
xinming left
05:45
crazedpsyc left
05:46
araujo left
05:47
crazedpsyc joined
05:50
araujo joined
05:53
rindolf joined
|
|||
rindolf | Hi all. | 05:53 | |
TimToady: hi! So why are you (= your wife and you) not coming to Israel, eventually? | |||
05:56
FROGGS left,
ChanServ sets mode: +o diakopter
|
|||
sorear | diakopter? | 06:03 | |
phenny | sorear: 06 Feb 22:21Z <FROGGS> tell sorear that I updated the patch: gist.github.com/FROGGS/0a6f8e2d4053fb0ba5d0 | ||
sorear: 06 Feb 22:22Z <FROGGS> tell sorear ... but rerunning the spectest always gives different failing tests, is that normal? nothing related to my patch though | |||
diakopter | hunh. I wonder what would cause nondeterministic behavior on mono | 06:06 | |
06:18
pupoque joined
06:27
jaldhar joined
06:28
FROGGS[mobile] joined
|
|||
TimToady | rindolf: we definitely plan to come to Israel eventually; just didn't work out this time, for various reasons that are OT here | 06:34 | |
06:35
kaleem joined
|
|||
_sri | the perl5/perl6 renaming discussion is heating up www.xray.mpe.mpg.de/mailing-lists/p...00267.html | 06:36 | |
bonsaikitten | I don't see the problem ... ? | 06:38 | |
japhb | _sri, if/when Rakudo is running on JVM, would you be willing at that point to do the Mojo porting in earnest? | ||
If not, what would you still be waiting on? | |||
_sri | if all the primitives i need are there, sure | 06:39 | |
sorear | diakopter: I was just wondering what you noticed that prompted the +o | ||
japhb | IIRC you need async Socket and file IO, proper signal handling, and half-decent speed ... anything else? | ||
06:41
FROGGS joined
|
|||
FROGGS | morning | 06:41 | |
sorear | morning FROGGS | 06:42 | |
FROGGS | hi sorear | ||
sorear | FROGGS: tbh I have no idea which tests are supposed to be passing or failing. I'd like someone else to worry about patches | 06:43 | |
FROGGS | japhb: would it make sense to create an blockers.md where module authors like sri could add the things that they're missing? | ||
sorear: but I would suspect that if I make realclean, compile and run the spectest, that always the same tests pass/fail, no? | 06:44 | ||
or is niecza known to not support TEST_JOBS greater 1? | |||
_sri | japhb: unicode, poll() in addition to non-blocking sockets, md5/sha1, base64, hires time, (possibly zlib, openssl) | 06:45 | |
FROGGS takes notes | |||
moritz | we have unicode, sha1 (though I don't know how well exposed), and sub-second time already | 06:47 | |
japhb also taking notes | |||
FROGGS | I've read something about base64 too | 06:48 | |
_sri | threads will be rather important too i suppose | 06:49 | |
no clue how small things like automatic restart could work on the jvm | 06:50 | ||
sorear | FROGGS: it might be dicey | ||
use your own judgement | |||
FROGGS | sorear: k | 06:51 | |
japhb | _sri, I would think automatic restart is a second-tier feature (really nice to have, but not critical for first phase implementation) | 06:53 | |
sorear | what do we mean by automatic restart? | 07:06 | |
SA_RESTART? | |||
rindolf | TimToady: got you - regarding Israel. | ||
07:10
MikeFair left,
rindolf left
07:11
rindolf joined,
Pleiades` left
|
|||
_sri | japhb: those second tier features matter though, i'm not interested in experiments, if i port mojolicious it's going to be the real deal :) | 07:13 | |
07:16
Pleiades` joined
|
|||
japhb | _sri, Sure, I understand that. I wasn't talking about an experiment. I was just saying, once the other prereqs are in place, you can start the porting work while we figure out how to support stuff like automatic restart. I'm basically trying to figure out what the critical path is -- the stuff you need before you can even start, so that then we can work in parallel with you. | 07:18 | |
07:21
rindolf left
07:29
pupoque left
07:40
quester joined
|
|||
dalek | ecza: 5f89e5f | (Tobias Leich)++ | lib/CORE.setting: "borrow" rakudos method Match.gist |
07:45 | |
sorear | FROGGS++ | 07:51 | |
FROGGS | thanks | ||
my problems might be about the mono framework, I get System.TypeLoadException's on random test files, but it works well when rerunning these tests manually | 07:52 | ||
08:00
hulu joined
08:03
nebuchadnezzar left
|
|||
hulu | r: sub A (Int $k, Int $g) { $k+$g;}; say A(3,1); | 08:03 | |
p6eval | rakudo cc7e3d: OUTPUT«4» | ||
hulu | r: sub A (Int $k, Int $g) { $k+$g;}; say A(3,1);say .chars, " digits starting with ", .substr(0,50), "..." given A(2,1); | ||
p6eval | rakudo cc7e3d: OUTPUT«41 digits starting with 3...» | ||
hulu | what does 'given A(2,1)' mean? | 08:04 | |
08:04
quester left
08:05
FROGGS[mobile] left
|
|||
tadzik | sourceware.org/ml/glibc-cvs/2013-q1...00115.html reminds me of a test in roast I once fixed :P | 08:06 | |
FROGGS | nr: say "abc123def" ~~ /\w $( 11*11+2 ) \D/ | ||
p6eval | rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«「c123d」» | ||
FROGGS | nr: say "abc123def" ~~ /\w ( $( 11*11+2 ) ) \D/ | ||
p6eval | rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«「c123d」 0 => 「123」» | ||
FROGGS | nr: say "abc123def" ~~ /\h/ | ||
p6eval | rakudo cc7e3d, niecza v24-19-g5f89e5f: OUTPUT«#<failed match>» | ||
FROGGS | k | ||
08:10
brrt joined
|
|||
brrt | hi #perl6 | 08:19 | |
FROGGS | hi brrt | 08:20 | |
brrt | hi FROGGS | ||
08:24
domidumont joined,
domidumont left
08:25
nebuchadnezzar joined,
domidumont joined
08:31
domidumont left
08:32
domidumont joined
08:42
sqirrel joined
|
|||
GlitchMr- | r: gist.github.com/GlitchMr/4729567 | 08:43 | |
p6eval | rakudo cc7e3d: OUTPUT«===SORRY!===Two terms in a rowat /tmp/2t8QLfKUjo:1------> https⏏://gist.github.com/GlitchMr/4729567 expecting any of: argument list postfix infix or meta-infix infix stopper stateme… | ||
GlitchMr- | r: gist.github.com/4729567 | ||
p6eval | rakudo cc7e3d: gist not found | ||
GlitchMr- | Makes... uhmmm... sense | ||
my $page = `curl -s $program`; | 08:46 | ||
This is so flawed | |||
I'm going to fix this | 08:47 | ||
Would adding WWW::GitHub::Gist to evalbot be allowed? | 08:48 | ||
08:51
daxim joined
08:54
odoacre joined
|
|||
moritz | GlitchMr-: if there's a debian package for it, or you build one (not hard with dh-make-perl), yes | 08:55 | |
GlitchMr- | I guess not then | 08:56 | |
I have WWW::GitHub::Gist package on my system (Arch), but I couldn't find one for Debian. | 08:57 | ||
It should be libwww-github-gist-perl, right? | 08:58 | ||
moritz | right | ||
GlitchMr- | aur.archlinux.org/packages/perl-ww...thub-gist/ | 08:59 | |
moritz | dh-make-perl automatically makes the right package name for you | ||
GlitchMr- | Oh wait, I forgot I made that package for Arch. | ||
Last time I've tried to make package using dh-make-perl, I have failed. | 09:01 | ||
But perhaps it's just because I couldn't use it properly. | |||
moritz | well, on Debian lenny it was buggy as hell | ||
on wheezy (testing) it worked fine for me every time | 09:02 | ||
09:02
hoelzro|away is now known as hoelzro
|
|||
GlitchMr- | Well, I will try to make Debian package | 09:04 | |
First, I will try to install dh-make-perl on Arch. | |||
... it has so many dependencies... could be fun | 09:05 | ||
09:06
fhelmberger joined
|
|||
moritz | just run it on feather | 09:13 | |
GlitchMr- | Makes sense | ||
moritz | I wouldn't try to create arch packages on Debian either :-) | 09:14 | |
GlitchMr- | Some people do | 09:16 | |
Except Arch packages are like 20 times less complex | |||
arnsholt | o/ | 09:17 | |
GlitchMr- | wow fun | ||
libperl-perl_5.17.3-1_i386.deb | |||
It made wrong package | |||
glitchmr@feather ~/libww> cpan2deb Some::Module | 09:18 | ||
I can blame myself, lol | |||
bonsaikitten | I think this is the point where I look down on anyone and make rude noises? ;) | 09:20 | |
GlitchMr- | Can't locate Moo.pm | ||
Except libmoo-perl appears to exist. I guess it's simply not installed. | |||
moritz installs it | |||
... except that I have to apt-get update first, because the package files are so out of date that the URLs are 404s now | 09:21 | ||
GlitchMr- | Dependencies are so fun | ||
(actually, I could install it myself, but whatever) | |||
thanks | 09:22 | ||
moritz | ...except that I first had to fix the sudo secure_path thingy | ||
... installed | |||
GlitchMr- | libwww-github-gist-perl_0.17-1_all.deb | 09:23 | |
Sounds good | |||
Except the package appears to install in /home/glitchmr | |||
... | |||
moritz | heh, do you have local::lib in effect? | 09:24 | |
GlitchMr- | Yeah | ||
wiki.archlinux.org/index.php/Perl_...ed_Example | |||
That could be of help | |||
To be exact export part | |||
export PERL_LOCAL_LIB_ROOT="/home/glitchmr/perl5"; | 09:25 | ||
export PERL_MB_OPT="--install_base /home/glitchmr/perl5"; | |||
export PERL_MM_OPT="INSTALL_BASE=/home/glitchmr/perl5"; | |||
Sounds like local::lib | |||
moritz | ~moritz/libwww-github-gist-perl_0.17-1_all.deb installs to /usr/share/perl5/ | ||
GlitchMr- | Well, ok, then | 09:26 | |
So the package already exists now | |||
moritz | yes | 09:27 | |
GlitchMr- | Anyway, I will go away now | ||
09:27
hulu left
|
|||
GlitchMr- | I will update evalbot later | 09:28 | |
09:28
b1rkh0ff left
|
|||
moritz upgrades some packages on feather | 09:30 | ||
09:41
dayangkun left
09:45
Psyche^ joined
09:49
Patterner left,
Psyche^ is now known as Patterner
|
|||
jnthn | morning o/ | 09:50 | |
brrt | hi jnthn | 09:51 | |
09:54
dakkar joined
|
|||
jnthn | ggoebel: Thanks for the link; I'm aware of that blog, it's full of interesting stuff :) | 09:57 | |
FROGGS | hi jnthn | 09:59 | |
jnthn | FROGGS: Plesae undo 1fb778f. Most HLLs don't have sigils/twigils. | 10:01 | |
Or at least many | |||
And it should be handled differently in NQP and Perl 6 anyway I suspect | |||
In Perl 6 they're probably meant to be a grammatical category really. | |||
10:02
mathw joined
10:04
Pleiades` left
|
|||
FROGGS | jnthn: will do | 10:07 | |
10:08
Pleiades` joined
|
|||
jnthn | Thanks | 10:09 | |
FROGGS++ # fixing the $(...) handling otherwise :) | |||
FROGGS | I thought HLL is just there for Perl6, totally my fault ó.ò | ||
jnthn | FROGGS: No, it's meant to be more generic :) | 10:11 | |
So...where did I get to before I went to Stockholm for $dayjob task... :) | |||
FROGGS | getting old ehh? :P | 10:12 | |
moritz | jnthn: you wanted to think about my idea for a callback when QAST::Compiler encounters a non-Want node in void context | ||
(among other things) | |||
jnthn | Ah, yes. | ||
I was also playing with multiple dispatch in NQP. | |||
And then blocked on a design issue, which my notebook seems to have an answer to, figured out on some train journey. | 10:13 | ||
arnsholt | And I failed at bootstrapping | ||
jnthn | moritz: My worry is that QAST::Compiler feels quite late. | ||
But maybe that's not entirely a problem... | 10:14 | ||
moritz | jnthn: you mean, because we might invest time in optimizing the statements, and later we discard them anyway? | ||
jnthn | moritz: More that we're pushing those warnings a long way down the compilation pipeline. At the moment, the optimizer is the last thing that is meant to complain; if you manage to make QAST::Compiler complain in some way then you fed it bad QAST. | 10:15 | |
moritz: Also I'm wondering if the optimizer should be tracking void context 'cus it'd be useful in general and because it probably can do so quite reliably. | 10:16 | ||
I mean, the entire statement list handling of void context in QAST::Compiler is fairly well encapsulated in compile_all_the_stmts. | 10:17 | ||
It's not so hard to steal that into visit_stmts or so. | |||
arnsholt: I should probably figure that out before I work more on NQP... | 10:20 | ||
moritz | jnthn: reimplementing void context tracking is what I wanted to avoid. But you're right, it makes sense to do it in the optimizer already | 10:21 | |
10:22
spider-mario joined,
hulu joined
|
|||
jnthn merges the arnsholt branch to see how it explodes | 10:23 | ||
arnsholt | jnthn: In hindsight, I should've done the REPR compose stuff directly on master and merged back, yeah | ||
jnthn | ah, yeah... | ||
arnsholt | jnthn: In the end I did manage to get it merged and update the bootstrap, but when I tried to compile Rakudo, it failed at compiling the setting... | 10:24 | |
10:24
anuby left
|
|||
jnthn | ok | 10:24 | |
10:25
kivutar joined
10:29
hulu left
|
|||
jnthn | arnsholt: OK, got an NQP build with your branch merged in that passes tests. Going to try out Rakudo now. | 10:33 | |
arnsholt | Cool | ||
jnthn | Is there a Rakudo branch I need to merge also? | 10:35 | |
arnsholt | Oh, right. Yes, there is. Same name as the NQP branch | 10:36 | |
(Updates to storage_spec.h and sixmodelobject.h) | |||
jnthn | And to the repr compose stuff :) | 10:37 | |
arnsholt | Oh, durr. That's it, isn't it | ||
Weird that it didn't crop up when I was working on my branch though | 10:38 | ||
jnthn watches it do the setting and waits for it to fail | 10:39 | ||
nwc10 wonders why there is no mention of people working on PHP atop PyPy, depsite the project being very active: bitbucket.org/fijal/hippyvm | |||
jnthn | Gets quite a way in... | ||
nwc10 | optimist | ||
10:40
salv0 joined
|
|||
jnthn | arnsholt: So, uh. | 10:40 | |
arnsholt: The build succeeded here. | |||
arnsholt | Weird... | ||
jnthn runs spectest | |||
timotimo | "wait. you're saying what i did works?! | 10:41 | |
arnsholt | Push away, I guess. How did you go about it? | ||
jnthn | All I said was it didn't break the build ;-) | ||
arnsholt | Less broken than my attempts, which is a definite improvement =) | 10:42 | |
jnthn | arnsholt: Commented out the repr_compose call in NQP, re-bootstrapped, merged your branch, re-enabled repr_compose, make test in NQP (pass), make install. Then get latest Rakudo, merge your branch there and build :) | ||
arnsholt | Huh. More or less what I ended up doing as well | 10:43 | |
jnthn | Oddness | ||
arnsholt | Or at least what I intended to do. We'll see when I look at the commits | ||
Oh, you should probably bump NQP_REVISION since you've merged the Rakudo branch | 10:44 | ||
(If you haven't already) | |||
jnthn | Yes, I shall before I push :) | 10:45 | |
arnsholt | Good, good | 10:46 | |
jnthn | spectest looks good | ||
arnsholt | Good, good. Odds are I did something weird, then =) | 10:47 | |
dalek | Heuristic branch merge: pushed 42 commits to nqp by jnthn | ||
kudo/nom: f7a5a2f | (Arne Skjærholt)++ | src/ (4 files): Start integrating with native size support in NQP. |
|||
kudo/nom: c7fe112 | (Arne Skjærholt)++ | src/Perl6/Metamodel/NativeHOW.pm: Fix braino. NativeHOW sent bad data to the REPR compose. |
|||
kudo/nom: e079812 | (Arne Skjærholt)++ | / (12 files): Merge branch 'nom' into dyncall-sized-num |
|||
kudo/nom: 3b135f5 | (Arne Skjærholt)++ | src/Perl6/Metamodel/NativeHOW.pm: Make NativeHOW set float as well as integer bitsize. Since NativeHOW is used for all native types (int, num, str) we don't know a priori whether we're setting the bitwidth of an int of a float. So we set both. |
|||
kudo/nom: 80dc914 | (Arne Skjærholt)++ | src/binder/sixmodelobject.h: Update sixmodelobject.h. |
|||
kudo/nom: e59ba28 | jnthn++ | src/ (4 files): Merge remote-tracking branch 'origin/dyncall-sized-num' into nom |
|||
kudo/nom: fc3f0d8 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for natives improvements. |
|||
timotimo | happy spam! :) | ||
arnsholt | Yaaaay! | 10:49 | |
jnthn | arnsholt++ | ||
arnsholt | jnthn++ # Fixing my problems =) | ||
timotimo | maybe i won't have to worry about process interop with a python shim for zmq any more :P | 10:50 | |
arnsholt | Well, we'll still have to wrap ZMQ | ||
But that should be feasible now, as opposed to before | |||
timotimo | indeed | ||
jnthn | arnsholt: So out of this, we get properly working sized int/num attributes in P6opaque, and sized types in C structs and C arrays for NativeCall? :) | 10:51 | |
arnsholt | Barring any stupid bugs in my code, that's the general idea, yeah | 10:52 | |
jnthn | \o/ | ||
moritz | \o/ indeed | 10:53 | |
timotimo | \o/ | ||
dalek | p: a0bba92 | (Tobias Leich)++ | src/ (3 files): move sigil/twigil back into place Because HLL is meant for general purpose, Perl 6 specifica should stay in Perl 6 world. |
10:59 | |
nwc10 | yes, that merge got rid of the uninialized warnings for thingy .bits | 11:01 | |
jnthn | FROGGS++ # thanks | 11:02 | |
FROGGS | of course | 11:03 | |
arnsholt | nwc10: Excellent! Any of those remaining would indeed be bugs | 11:04 | |
masak | good afternoon, #perl6 | 11:10 | |
FROGGS | hi masak | 11:11 | |
jnthn | o/ masak | ||
sorear | o/ masak | 11:13 | |
arnsholt | Git is nice, but I think GitHub is an important part of the killer app part of software success there | 11:17 | |
spider-mario | I think I prefer bitbucket | ||
11:18
SmokeMachine joined
|
|||
arnsholt | I haven't really used BitBucket much, to bo honest | 11:19 | |
Probably should | |||
masak | arnsholt: totally agree about git+github. it's like they feed each other's success. either is better with the other. | 11:20 | |
arnsholt | Yeah. The UX of GitHub is very good, which complements (and alleviates, in some cases) the arcaneness of plain git | ||
11:23
Pleiades` left
|
|||
masak | git, arcane? never! :P | 11:25 | |
moritz | just low-level, and, hysterical raisins | ||
tadzik | bitbucket is nice, as it has free private repos | ||
moritz | I find myself needing them very rarely | 11:26 | |
for p6cc I used one (but hosted on my own server) | |||
spider-mario | I use them quite much | 11:27 | |
for example for school projects | |||
11:27
Pleiades` joined
|
|||
arnsholt | Yeah, for work and school private stuff I just put them on my work area with SSH access | 11:29 | |
masak | I just got my 100th repository. | 11:30 | |
on github. | |||
moritz | masak++ | ||
masak | I basically use it as a distributed hard drive. | ||
dalek | kudo/nom: 4fb07b1 | (Tobias Leich)++ | src/Perl6/Actions.pm: remove circumfix:sym<sigil> This was already moved to method variable. |
11:35 | |
11:36
kivutar left,
brrt left
11:42
jerome left
11:43
jerome joined
|
|||
masak | quote from Tom Dale of Ember (a JavaScript client-side framework): "We do a lot of magic, but it’s good magic, which means it decomposes into sane primitives." | 11:43 | |
that's how I feel about Perl 6. | |||
11:44
hypolin left
11:52
kivutar joined
11:59
xdbr joined
12:02
kivutar left
12:15
brrt joined
|
|||
grondilu | rn: say <1/3>.WHAT | 12:21 | |
p6eval | niecza v24-19-g5f89e5f: OUTPUT«Rat()» | ||
..rakudo 4fb07b: OUTPUT«Str()» | |||
dalek | p: 3089165 | jnthn++ | src/QAST/Operations.nqp: Add some ops for capture manipulation. This will enable porting of most of the multi-dispatch code to NQP. |
12:22 | |
p: 38070ee | jnthn++ | src/stage0/ (9 files): Update bootstrap for new ops. |
|||
p: 7a83b54 | jnthn++ | src/ (2 files): Port multi-dispatch logic to NQP. Not wired up for use in the dispatch yet, but a little testing seems to show it does the right kind of thing. |
|||
grondilu | n: say <1/3 0.2>».WHAT | ||
p6eval | niecza v24-19-g5f89e5f: OUTPUT«RatStr() RatStr()» | ||
grondilu | n: say .nude for <1/3 0.2> | 12:23 | |
p6eval | niecza v24-19-g5f89e5f: OUTPUT«1 31 5» | ||
12:43
Pleiades` left
12:47
kivutar joined
12:48
Pleiades` joined,
spider-mario left,
spider-mario joined
12:51
SamuraiJack_ joined
12:53
Targen left,
spider-mario left
12:54
SamuraiJack left,
spider-mario joined
12:56
SmokeMachine left
12:58
SmokeMachine joined
13:01
SmokeMachine left,
SmokeMachine joined
|
|||
brrt | at the risk of total flamebait, whats up with ovid's suggestion to call perl 5.20 perl7? | 13:03 | |
tadzik | I think it's stupid | ||
Perl 5 pretending that it's Perl 6, or the successor of it, will just make everyone disappointed as hell, and bring a lot of bad marketing | 13:04 | ||
like "they didn't do anything for the last 12 years and now they pretend that the old is the new!" and such | |||
brrt | yeah, i kind of agree | 13:05 | |
tadzik | as if the problem of Perl 5 was naming | 13:06 | |
nwc10 | put lipstick on a pig, and it's still a pig | ||
and Ruby must be dead too, as it's still on version 1 | 13:07 | ||
it's *not* the problem. | |||
jnthn | And the "didn't do anything" perception is part of the problem. A bunch of the folks who think this is a good idea are very good at noticing that getting Perl 6 done is taking a long time (though maybe not following enough to even be able to answer "what progress was made in the last couple of years" and assuming it's nothing), yet oddly blind to the fact that evolving Perl 5 core seems to be a slow and painful process too (the MOP would have been great, but sadly s | ||
tadzik | that too | ||
brrt | for me, the problem of perl 5 is teaching | 13:08 | |
suppose i could teach a total newbie programming | |||
i could start with some toy language, then he or she would never get anything done | |||
i could start with scheme, and that person would have a splendid understanding of the first 30 years of computer science, and still not get anything done | 13:09 | ||
or i could start with python | |||
perl 5 doesn't even enter there, because there is simply too much to know | |||
nwc10 | jnthn: you got truncated at "sadly s" | ||
jnthn | sadly seems to have run into a bunch of problems). | ||
13:10
domidumont left
|
|||
jnthn | (I'm not implying I don't think the MOP will happen. I'd love it to. I'm just pointing out that if that happens it'll hardly have been a case of "wow, that got done quick"). | 13:10 | |
Woo, I seem to have ported the multi-dispatcher to NQP. Now I just need to put back the cache fast-path so things ain't omg slow. | 13:12 | ||
The reason for all of this, fwiw, is so that porting multiple dispatch is a case of porting a small bunch of primitives rather than having to port the entire dispatch algorithm. | 13:13 | ||
moritz | \o/ | 13:14 | |
13:14
bluescreen10 left
|
|||
FROGGS | cool | 13:14 | |
jnthn++ | |||
jnthn | oh, urgh | 13:15 | |
13:16
nyuszika7h left
|
|||
jnthn | Messy interaction with serialization | 13:16 | |
Well, not hard to fix. | |||
But, lunch first. | |||
nwc10 | cool | 13:18 | |
nwc10 wonders what timezone jnthn is in today | |||
FROGGS | 2pm here, still lunch time | 13:19 | |
arnsholt | I think he's in his current home TZ in Sweden | ||
13:19
mls_ joined
|
|||
mls_ | jnthn: "captueposelems"? Is that a typo? | 13:20 | |
jnthn | mls_: Yes. | ||
mls_: Fixed locally. | |||
Thanks ;) | |||
uh, :) even | 13:21 | ||
13:21
pmurias joined,
telex left
13:23
mls_ is now known as mls,
telex joined
13:25
nyuszika7h joined
13:29
pmurias_ joined,
pmurias_ left
|
|||
pmurias | I get a segfault while building nqp | 13:30 | |
arnsholt | That's not good | ||
Using --gen-parrot? | |||
pmurias | yes | 13:31 | |
pastie.org/6087088 | 13:32 | ||
arnsholt | Could you try regenning with --parrot-option='--ccflags=-g' and use gdb to get a backtrace? | ||
pmurias | parrot-- | ||
arnsholt | Not necessarily parrot | ||
There's a lot of C code in NQP (some of which was updated earlier to day when my branch was merged) which could very well be the culprit | 13:33 | ||
What platform are you on, BTW? | |||
pmurias | linux | ||
3.2.0-1-686-pae | 13:34 | ||
arnsholt | 64-bit? | 13:35 | |
pmurias | 32bit | 13:36 | |
[Coke] stands in the corner listening to pmurias beat up on parrot. | |||
13:37
stevan_ left
|
|||
FROGGS | hmmm, I pulled, made realclean and it did it just fine | 13:37 | |
spectests are good too | |||
arnsholt | pmurias: Right. Could be a 32-bit limitation of my branch, in that case. AFAIK it's only been tried on 64-bit | 13:39 | |
FROGGS | 64bit here too, yes | ||
13:40
kivutar left
|
|||
jnthn | Oh my... www.modernperlbooks.com/mt/2013/02/...epalm.html | 13:43 | |
OK, I've had enough. | |||
*sigh* | 13:44 | ||
daxim | insert "walk out of the window" image macro here | 13:45 | |
nwc10 | jnthn: wait, his summary is acutally excellent | ||
jnthn | "Contributing adult supervision to one or another Perl 6 implementation such that it's eventually usable by regular people". Really? | 13:46 | |
nwc10 | oh, except for tat one | ||
there he is being, well | |||
this is logged, right? | |||
jnthn | "Goodness knows it's more fun to write a compiler or to port a half-finished project halfway to a new virtual machine " | ||
NO THE POINT IS THAT THERE IS NO FUCKING WAY TO FINISH PERL 6 WITHOUT LEAVING PARROT BEHIND. | |||
Yes, it's logged and now I said it and it's logged and that's awesome. | |||
nwc10 | which, by the way | 13:47 | |
has anyone actually asked him why he quit working on parrot? | |||
is that online anywhere? | |||
pmurias | jnthn: I fully agree with that | ||
brrt is a sad panda about it, but agrees nonetheless | |||
nwc10 | I believe I know the answer, but it's hearsay, so I'm not going to screw up by pasting it here | ||
brrt | frustration is my guess | 13:48 | |
hoelzro | jnthn: may I ask why Perl 6 can't be completed without abandoning Parrot? | ||
I'm not trying to provoke; I'm just curious | 13:49 | ||
nwc10 | because, sadly, it's too buggy | ||
brrt | hoelzro, nobody is really maintaining parrot | ||
nwc10 | it doesn't have useful threading | ||
FROGGS | hoelzro: most ppl dont port their modules to Perl 6 because rakudo is too slow, and now it seems that JVM is much much faster, thats why I guess | ||
hoelzro | that is sad =( | ||
brrt | it is maintained, but not with anywhere adequate manpower | ||
nwc10 | and pretty much everyone hacking on it has stopped | ||
jnthn | It's too buggy and it's badly designed (or not designed) in places Perl 6 needs to work out its spec. | ||
For example, threads and async IO. | 13:50 | ||
brrt | parrot has awesome plans for fixing the poor design | ||
13:50
kaleem left
|
|||
brrt | but no manpower /at all/ | 13:50 | |
pmurias | brrt: move to a different vm? | ||
nwc10 | the contributor and commit graphs on www.ohloh.net/p/parrot tell a story | ||
brrt | not to mention the fact that whenever big changes appear, then OMG TESTS FAIL | ||
jnthn | brrt: Yes, that's a sign of fragility. | ||
13:51
benabik left
|
|||
brrt | yes, unfortunately, you cannot really remove fragility one piece at a time | 13:51 | |
pmurias | arnsholt: pastie.org/6087201 | ||
daxim | okay, cool to know about what youall just said | 13:52 | |
brrt | nwc10, looks at the timeline of those graphs :-) | ||
nwc10 | look at the last year | 13:53 | |
jnthn | We *really* need to get our async IO and threading story sorted out. There's no way I can even try to work on those things on Parrot. A port to the JVM is quicker than trying to get Parrot to do enough of the things - assuming it was even feasible. | ||
nwc10 | I'm pretty confident that pretty much every piece of the parrot design is, with hindsight, roughly, wrong. | ||
that's pretty sweeping, I know | 13:54 | ||
brrt | nwc10, not every piece | ||
nwc10 | there are far too many ops | ||
the ops are implemented in C, so are opaque to any analsysis or JIT | |||
brrt | although there are quite a few unlucky tradeoffs | ||
polymorphic ops, now that is a pain | |||
13:54
shinobicl joined
|
|||
nwc10 | there's no coherent IO/signals/events/GC/concurrency story | 13:55 | |
arnsholt | pmurias: Right, so a segfault in P6opaque's gc_mark. That's one of the files I've touched | ||
brrt | jnthn, i wonder how threads and a mutable view of code / classes is going to work out | ||
suppose i have two threads, one in a highly optimised runloop calling foo.bar(); | 13:56 | ||
[Coke] | I find the irony levels at "Handwringing over what should have been or might have been doesn't do much" nearly toxic. | ||
jnthn++ for making rakudo move. | |||
brrt | and another thread replacing foo's bar() with some other reference because monkeypatching lolz | ||
nwc10 | his block is toxic. | ||
gah. | |||
blog | |||
13:57
Targen joined
|
|||
jnthn | brrt: It's mostly a cache invalidation problem. | 13:57 | |
13:57
skids left
|
|||
brrt | yes, but how do you know which caches rely on which threads? | 13:58 | |
if you have no threads, then you invalidate the cache next time you enter the scope | |||
pmurias | can't monkeypatching just invalidate all caches | ||
? | |||
brrt | only if you know where all caches are | ||
arnsholt | pmurias: Do you happen to remember roughly which NQP revision you started from that still worked? | 13:59 | |
brrt | some of them might be inline (you'd like them to be, anyway) | ||
nwc10 | if there are no Perl 6 level locks between the code in the tight loop, and the code in the other thread doing the monkeying, then the order in which they run is indeterminate | ||
so, it's not wrong for the tight loop to run to completion before "seeing" the change | |||
as long as the interpreter state remains consistent enough not to crash | 14:00 | ||
arnsholt | pmurias: Or actually, try checking out 2c13753ac8. If that one works, git bisect and try to find which commit is bad | ||
nwc10 | wonky code is going to ack wonky | ||
brrt | right, but that means that locking also means 'check all caches' | ||
for code that is unlikely to happen anyway | |||
nwc10 | it might be as simple as "check a flag that says that 'something happened'" | 14:01 | |
and at that point, call out to the slow code | |||
brrt | hmm | ||
a thread cache flag | |||
fair enough actually | |||
nwc10 | which *does* the real work of figuring out the significance of what needs changing | ||
it's roughly how Perl 5 safe signals work | |||
there's a "whoaaah" flag | |||
jnthn | It all depends on how soon the other thread needs to reflect the change also. | ||
nwc10 | which is all that gets checked | 14:02 | |
brrt | in theory, after a synchronisation point | ||
which also means that if i have two threads, and one of 'm monkey-patches, the other might /never/ see the monkey-patch | |||
which is fine by me, but you're going to receive bug reports about that | 14:03 | ||
jnthn | Code that you're currenlty in the middle of executing being invalidated will always be a tricky problem. | ||
14:04
zos joined
|
|||
jnthn | Of note, trying to decide where you were in the optimized version so you can work out the correct PC in the unoptimized version when you fall back out to it could be all kinds of fun. | 14:04 | |
14:04
zos left
|
|||
pmurias | would it be possible to setup automatic building and testing of nqp revisions? | 14:05 | |
jnthn | otoh, there's plenty (or at least some) literature out there on on stack replacement and so forth | ||
pmurias | s/revisions/commits/ | ||
brrt | v8 can do it :-) so can we | ||
jnthn | brrt: It's doable, just hard :) | ||
pmurias: Yes, it just needs somebody with tuits to do it... | 14:06 | ||
nwc10 | pmurias: "yes". But was that you volunteering to try? | ||
brrt | the enviroment of the jvm could (should) theorethically make it somewhat easier | ||
whats tuits | |||
found it | |||
decasm | upscale bbq? that sounds ... backwards. | 14:07 | |
jnthn | brrt: A terrible but great pun :) | ||
pmurias | nwc10: I could to try to help with that, I'm not sure what's needed | ||
arnsholt | Yeah, some kind of CI system for NQP and Rakudo would be neat | ||
brrt | i like it | ||
14:07
SmokeMachine left
|
|||
arnsholt | Or even a distributed manual one like cpantesters | 14:07 | |
pmurias | arnsholt: that commit worked | 14:08 | |
arnsholt | Awesome. Have you used git bisect before? | ||
pmurias | no | ||
pmurias looks at the manual | |||
arnsholt | It's pretty straightforward, and the manual is useful (as opposed to other parts of git) | 14:09 | |
pmurias | I generally find the git manual usefull provided I roughly now what I want to do | 14:10 | |
arnsholt | True, true. I'm getting more used to it now | ||
BooK_ | tadzik: there's a better way to do a multilingual act website for plpw | 14:14 | |
arnsholt | git bisect is ridiculously magicsauce, anyways | ||
tadzik | BooK_: 2 templates, eh? | ||
maybe someone will pick it up, I githubbed our act files recently | 14:15 | ||
BooK_ | <t><en>stuff in Engligh</en><pl>stuff in polish</pl></t> | ||
14:15
Targen left
|
|||
tadzik | oh | 14:15 | |
kewl | |||
BooK_ | although that assumes there's a po/pl.po file | ||
tadzik | I'll wait for pl.po to show up though | ||
right | |||
pmurias | tadzik: is there a website for the polish perl workshop? | 14:16 | |
tadzik | pmurias: aye | ||
act.yapc.eu/plpw2013/ | |||
14:17
PacoAir joined
|
|||
BooK_ | updating the yapceurope.org web site ATM | 14:17 | |
jnthn | Aww, dang, I wanted to be first person to register for plpw but registration isn't turned on yet ;) | 14:19 | |
pmurias | jnthn: are you attending? | 14:23 | |
jnthn | pmurias: Yeah, I will do :) | ||
[Coke] | jnthn++ # awesome beard of perl+1. | ||
dalek | rl6-roast-data: b584f99 | coke++ | / (4 files): today (automated commit) |
14:24 | |
rl6-roast-data: 5d349e4 | coke++ | / (4 files): today (automated commit) |
|||
14:25
Targen joined
|
|||
tadzik | jnthn: it'll open as soon as we have the financial backend settled up, which would probably be friday or caturday :) | 14:26 | |
I'll notify everyone, fear not ;) | |||
FROGGS .oO( purr purr - its caturday! (finally) ) | 14:27 | ||
14:29
cognominal joined
|
|||
[Coke] | hey, no grant submittals this past time period. Be nice if we had some perl6 submittals to consider. | 14:29 | |
(for the regular process, not the hague process) | |||
14:33
domidumont joined
|
|||
pmurias | arnsholt: I didn't do a make clean every time and bisect found nothing | 14:34 | |
arnsholt | Weeeird. | 14:36 | |
pmurias | there seem to be a lot of warnings while building | 14:37 | |
arnsholt | Yeah. Most of them are stuff like returning aggregates, which isn't actually problems | ||
pmurias | shouldn't we turn them off then? | 14:38 | |
if we ignore some of them all are useless | |||
arnsholt | Most of our cflags come from Parrot | ||
14:40
arlinius joined
|
|||
[Coke] | ... which in turn come from p5. | 14:45 | |
arnsholt | pmurias: But that's odd. Does checking out HEAD^ and doing a clean make work? | 14:47 | |
pmurias | hmm HEAD and make clean, make doesn't work | ||
decasm | @blame royt | 14:48 | |
14:49
decasm left
|
|||
pmurias | arnsholt: I'm repeating the bisect wit make clean;make | 14:50 | |
arnsholt | Ah, even better. Thanks! | ||
pmurias | waiting for all those revisions is really boring tho | ||
arnsholt | Yeah | ||
pmurias | what would we need to have them built automatically? | 14:51 | |
arnsholt | A CI server of some kind, probably | 14:52 | |
Hmm. Maybe we could be able to do something with Travis CI? | 14:53 | ||
14:53
xdbr left
14:54
xdbr joined
14:58
stopbit joined
14:59
SmokeMachine joined
|
|||
rurban | pmurias: debugging parrot? | 14:59 | |
Is DEBUGGING defined? | 15:00 | ||
arnsholt | The segfault is while compiling NQP, and since we've recently merged a branch that involves a fair amount of changes to our C code (and C-side memory diddling) I suspect the bug is in my NQP changes | 15:02 | |
15:02
stevan_ joined,
domidumont left
|
|||
rurban | I tested it before (with asan) | 15:02 | |
arnsholt | It == Travis? | 15:03 | |
15:03
domidumont joined
|
|||
rurban | nqp and parrot | 15:03 | |
15:03
xdbr left
|
|||
arnsholt | Oh. I suspect the bug may be related to wordsizes or something like that | 15:03 | |
rurban | I'll have it soonish | ||
arnsholt | I've implemented support for sized native variables in NQP, and it's probably only been tested on 64-bit machines | 15:04 | |
So I wouldn't be surprised if there's something that doesn't work right on 32-bit, which is what pmurias has | |||
rurban | Oh, thats' on 32bit? | ||
15:04
SunilJoshi joined,
xdbr joined
|
|||
arnsholt | Yeah, my suspicion is 32-bit/64-bit shenanigans. But it'd be wonderful if you gave it a whack | 15:07 | |
If it breaks, it disproves my theory, for one =) | |||
15:08
shinobicl left
|
|||
pmurias | arnsholt: 38070ee34cba4257017a9bb280c592d3a1c59002 | 15:09 | |
maybe I should starting using a 64-bit laptop | 15:11 | ||
15:11
sizz_ joined
|
|||
arnsholt | Hmm. So it looks like it's a later commit | 15:11 | |
jnthn: Any ideas what it might be? | 15:12 | ||
15:12
sizz left,
FROGGS left
|
|||
jnthn | arnsholt: Not immediately, but maybe some bad assumption about INTVAL's size? | 15:14 | |
rurban | And it would be nice if you are bullshitting parrot you'll get the facts right. There are problems but not the problems you talked about | ||
arnsholt | jnthn: Yeah, that's what I thought. But for some reason pmurias's bisect turns up github.com/perl6/nqp/commit/38070e...d3a1c59002 which is your bootstrap update to add the new capture ops... | 15:16 | |
pmurias | rurban: it's not slow? | ||
rurban | Calling functions is slow, yes. But threads are working fine. | ||
jnthn | lol | ||
rurban | Show me a better threads implementation. The best I know | ||
jnthn | arnsholt: That's really odd. | ||
rurban | 64bit nqp passed with asan | 15:17 | |
pmurias | asan? | ||
arnsholt | It's definitely weird. Makes me wish I had a 32-bit machine to try | ||
rurban | address-sanitizer, a 10x faster valgrind | ||
arnsholt goes digging in P6opaque.c | 15:18 | ||
jnthn | arnsholt: I'd first look for anywhere that maybe assumes INTVAL == Parrot_int8 or so. | 15:19 | |
arnsholt: I may be able to get a 32-bit environment to try this on | |||
Suspect I may have to go afk for a little bit soon though | 15:20 | ||
arnsholt | Oh, oh! | ||
I may see it | |||
pmurias: Open src/6model/reprs/P6opaque.c and go to line 291 | 15:21 | ||
Cut that whole paragraph of code out (if(unboxed_type == STORAGE_SPEC_BP_NONE) { ... }) and paste it after the paragraph that handles alignment (if(cur_size % align) { ... }) | 15:22 | ||
pmurias | arnsholt: in which revision? | ||
15:23
skids joined
15:24
FROGGS[mobile] joined
|
|||
arnsholt | Just do it in HEAD | 15:24 | |
pmurias | doesn't help | 15:27 | |
arnsholt: you want me to switch the 2 if statements? | |||
arnsholt | Yeah, that's all | 15:28 | |
The first if clause uses cur_size, which is updated in the second if | 15:29 | ||
The update should happen before the use | |||
pmurias | I think I'll just start using my 64bit laptop | 15:31 | |
arnsholt | But then you wouldn't find my bugs! ;) | ||
pmurias | that's what I hope | 15:33 | |
15:36
bluescreen10 joined
|
|||
rurban | Found now a fast 32bit machine with all tools | 15:36 | |
15:39
murek1 joined
15:40
domidumont left,
domidumont joined
|
|||
arnsholt | rurban: Oh, that's awesome! | 15:40 | |
15:41
stevan_ left
15:46
stevan_ joined
15:47
am0c left
15:48
benabik joined
15:50
SunilJoshi left
|
|||
dalek | p: 51d9d8d | jnthn++ | src/QAST/Operations.nqp: Argh, got typo into the bootstrap. :( |
15:51 | |
p: 4b213cc | jnthn++ | src/ (2 files): Implement nqp::invokewithcapture. Use correctly spelled ops. |
|||
15:51
dalek left
|
|||
jnthn | fail | 15:51 | |
15:51
dalek joined,
ChanServ sets mode: +v dalek
|
|||
FROGGS[mobile] | epic fail? | 15:52 | |
arnsholt | Yeah, I think dalek handles long-ish commit messages poorly, or something like that | ||
15:53
kaleem joined
|
|||
jnthn | Anyway, multi dispatch in NQP is now largely written in NQP | 15:53 | |
Being called away now, will clean up in a bit | |||
nwc10 | yay! | 15:54 | |
15:54
kaare_ joined
|
|||
FROGGS[mobile] | jnthn: can we hope to gain a bit more performance? | 15:56 | |
15:57
FROGGS[mobile] left,
FROGGS joined
15:58
dayangkun joined
16:05
nyuszika7h left
|
|||
FROGGS | nr: $_ = "foo bar"; say m/ $( $_ ) / | 16:08 | |
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«「foo bar」» | ||
16:09
nyuszika7h joined
|
|||
FROGGS | nr: try { say $_ } for <1 2> | 16:14 | |
p6eval | rakudo 4fb07b: OUTPUT«Any()Any()» | ||
..niecza v24-19-g5f89e5f: OUTPUT«12» | |||
FROGGS | nr: try say $_ for <1 2> | ||
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«12» | ||
16:14
sizz joined
|
|||
FROGGS | nr: try { say $_ } given 2 | 16:14 | |
p6eval | niecza v24-19-g5f89e5f: OUTPUT«2» | ||
..rakudo 4fb07b: OUTPUT«Any()» | |||
16:15
sizz_ left,
cognominal left
|
|||
benabik | r: given 2 { try { say $_ } } | 16:15 | |
p6eval | rakudo 4fb07b: OUTPUT«2» | ||
FROGGS | rt.perl.org/rt3/Ticket/Display.html?id=111704 | ||
nr: say 'aa' ~~ /(.)$1/ | 16:16 | ||
p6eval | rakudo 4fb07b: OUTPUT«#<failed match>» | ||
..niecza v24-19-g5f89e5f: OUTPUT«Use of uninitialized value in string context at /home/p6eval/niecza/lib/CORE.setting line 1287 (warn @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 266 (Mu.Str @ 15)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/H4s4rLV8gX line 1 (ANON @ 7) … | |||
16:17
cognominal joined
|
|||
colomon | jnthn: is there a rakudo-friendly way to do token tuplet { '('(<digit>+) {} [<t_elem>* <stem>] ** { +$0 } <slur_end>? } yet? | 16:17 | |
16:18
stevan_ left
16:20
stevan_ joined
|
|||
pmurias | rurban: any luck reproducing the problem? | 16:21 | |
rurban | Still compiling parrot... | ||
16:22
cognominal left
16:23
murek1 left
16:24
murek1 joined
|
|||
masak | today's mini-challenge: construct a proof that 1 + 1 == 2 (in Perl 6). using any kind of addition is considered begging the question. | 16:24 | |
[Coke] | r: use Test; is(2, 1*2) | 16:26 | |
p6eval | rakudo 4fb07b: OUTPUT«ok 1 - » | ||
rjbs | Heh. | ||
nwc10 | clearly not Abigail. Abigail would have used a regular expression. | 16:27 | |
masak | no... :) | ||
I could see a regex solution actually working out as a proof. | |||
also, sets. | |||
16:27
brrt left
|
|||
masak | I was thinking of this on the way home. struck by how similar the *process* of addition actually seems to the >>= operator for Haskell monads. | 16:27 | |
16:28
benabik_ joined,
benabik left,
benabik_ is now known as benabik
16:30
domidumont left
|
|||
FROGGS | nr: say 'aa' ~~ /(.)$0/ | 16:30 | |
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«「aa」 0 => 「a」» | ||
16:31
hoelzro is now known as hoelzro|away
16:33
murek1 is now known as murek
16:34
murek is now known as amurias,
kaleem_ joined
16:35
kaleem left
|
|||
masak | was more thinking of something like this: | 16:36 | |
r: sub set_of_size($n) { set Any.new xx $n }; say elems set_of_size(1) (|) set_of_size(1) | |||
p6eval | rakudo 4fb07b: OUTPUT«2» | ||
16:37
thou joined
|
|||
masak | "combine two (disjoint) sets of size 1. count the elements of the resulting set." | 16:38 | |
16:39
SmokeMachine left
|
|||
pmurias | how and when did the serialization format change? | 16:40 | |
16:42
SmokeMachine joined
|
|||
timotimo | oooh that's cool, masak | 16:42 | |
masak | rn: sub churn_addition($_) { return ~$0 if /^(S*0) \+ 0$/; return "S$0+$1" if /^(S*0) \+ S(S*0)$/ }; say ("S0+S0", &churn_addition ... /^S*0$/)[*-1] # using peano arithmetic | 16:45 | |
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«SS0» | ||
masak | S0+S0 reduces to SS0 | ||
more entries welcomed :) | |||
16:48
SmokeMachine left
|
|||
skids | r: say (1+1).is-prime; say (1+1) %% 2; | 16:49 | |
p6eval | rakudo 4fb07b: OUTPUT«TrueTrue» | ||
16:49
Targen left
16:50
kaleem_ left
|
|||
rurban | pmurias: now at nqp... | 16:53 | |
masak | skids: interesting. | ||
skids: seems a little overkill, though :) | |||
(in that it involves the notion of divisibility) | |||
16:55
jeffreykegler joined
|
|||
colomon | I liike skids' approach | 16:58 | |
amurias | pmurias: are you there? | 17:00 | |
FROGGS .oO( "YOU_ARE_HERE" ) | |||
17:00
kaleem_ joined
|
|||
timotimo | you know how we can raise awareness for perl6 and how neat the new regexes are | 17:00 | |
did you see the MIT mistery hunt regex "crossword" puzzle? | 17:01 | ||
masak | colomon: it's innovative. but one could argue that it implicitly uses addition, because divisibility rests on addition. | ||
colomon | I suppose it implicitly uses == as well, by that logic. | 17:02 | |
masak | that's fine. | ||
we much have equality in order to compare things. | |||
colomon | in that case, the problem is that it directly uses addition, no? | 17:03 | |
masak | oh! yes. that, too. | ||
17:03
daxim left
|
|||
colomon | I kind of think the problem is actually ill-formed | 17:03 | |
masak | it's tantamount to printing the result of 1+1 and saying "it looks like a 2" :) | 17:04 | |
colomon: oh? | |||
the task is meant to encourage the discussion "what is addition?", by the way. | |||
colomon | well, on the one hand 2 is defined as the successor of 1, that is to say, 1 + 1. | 17:05 | |
masak | I'm also forever fascinated by the fact that it took R&W 379 pages to prove this... en.wikipedia.org/wiki/Principia_ma...Quotations | ||
colomon: usually the successor function isn't defined in terms of addition. | 17:06 | ||
17:06
benabik left,
benabik_ joined
|
|||
rurban | yes, repro | 17:06 | |
moritz | masak: me too, because I thought that the very definition of 2 is that it's the integer successor of 1 | 17:09 | |
masak | yes, it is. | 17:10 | |
but why are you confusing that with addition? | |||
addition is a separate concept from the successor function. | |||
colomon | masak: it isn't defined in terms of full addition. It is defined in terms of adding 1 | 17:11 | |
masak | if the fact that "successor" and "+1" feel kinda similar, feel free to prove that 2+2==4 ;) | ||
FROGGS | somebody like to comment on rt.perl.org/rt3/Ticket/Display.html?id=77616 ? | ||
masak | colomon: usually the successor function is axiomatically defined, without any mention of addition. | ||
moritz | well, I learned that N (the set of integers) is defined as the smallest set which contains 0, and for all n element N, it also contains n + 1 | ||
rurban | nqp 380b20 still fails on 32bit | ||
masak | I am surprised by this mixing-up of "adding one" and "successor". in my mind they are completely separate. | 17:12 | |
you can count using Church numerals, for example. | |||
ooh, there's another way to prove it... :) | |||
if there is something I can do to make the task less ill-defined, let me know. to me, it's already clearly defined. | 17:13 | ||
colomon | masak: consider en.wikipedia.org/wiki/Successor_function .... | 17:14 | |
timotimo | hm, can one create a regex object from a string in perl6? | ||
well, i guess eval. but that's not "secure" | |||
jnthn | timotimo: rx/<$string>/ or so | ||
timotimo | oh, good point | 17:15 | |
jnthn | timotimo: Creating a regex object from a string is not exactly secure ;) | ||
17:15
SmokeMachine joined
|
|||
timotimo | hm, right :) | 17:15 | |
i'll write a regex that only lets secure regex through | |||
like forbid $ signs and < > | |||
masak | colomon: huh. that *is* unfortunate. | 17:16 | |
p: a60560e | jnthn++ | src/stage0/ (9 files): Update bootstrap. Means that the first stages won't be slower due to not using the cache. |
|||
masak | colomon: well, consider as a counterargument en.wikipedia.org/wiki/Peano_axioms#Addition | ||
colomon | masak: on the other hand, en.wikipedia.org/wiki/Peano_axioms#Addition | ||
dalek | p: 323db25 | jnthn++ | src/ (5 files): Toss a mass of now-unused C code and dead ops. |
||
masak | colomon: heh :) | ||
colomon: clearly, in order to solve the task at all, one must choose a set of definitions that are not circular. | |||
so it is not the task that is ill-grounded, but Wikipedia. | 17:17 | ||
jnthn | Circular definition: see circular definition | ||
colomon | masak: but then in those terms it's not really a perl 6 task | ||
FROGGS | timotimo: if you just want to match the content of a var, do it like: | 17:18 | |
r: my $var = "abc"; say "abcdef" ~~ / $( $var ) / | |||
p6eval | rakudo 4fb07b: OUTPUT«「abc」» | ||
17:18
domidumont joined
|
|||
[Coke] | jnthn++ deleting code, esp. C. | 17:19 | |
moritz | well, or just / $var / | ||
FROGGS | r: my $var = "abc"; say "abcdef" ~~ / <{ $var }> / # too | ||
p6eval | rakudo 4fb07b: OUTPUT«「abc」» | ||
timotimo | FROGGS: no, i want to handle regexes as strings, like my $charclass = "[abc]"; | ||
FROGGS | ahh | ||
masak | colomon: no, but it's pleasant to use Perl 6 to express thoughts, even mathematical ones. | ||
PerlJam | timotimo: except that's not a character class in Perl 6 ;) | ||
colomon | masak: I mean, if you claim S as your root definition and then pull in the additional definition of addition, you're asking to prove a + 1 = S(a), in perl 6. I guess you could code a peano theorem solver in p6.... | ||
jnthn | PerlJam: It is if you use :P5 ;) | 17:20 | |
timotimo | PerlJam: excuse me, i'm context switching too much to notice ;) | ||
masak | rn: my $one = -> $f, $x { $f($x) }; sub plus($m, $n, $f, $x) { $m($f, $n($f, $x)) }; say plus $one, $one, "S" ~ *, "0" # using church numerals | 17:21 | |
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«SS0» | ||
arnsholt | rurban: That's extremely weird. Have you tried to apply the change I outlined to pmurias? | 17:22 | |
FROGGS | timotimo: think of function calls and what not | ||
masak | colomon: no, I am asking to prove S0 + S0 == SS0 | ||
colomon: ...but I don't claim S as my root definition. | |||
colomon: I'm fine with any definition which doesn't rest on addition. | |||
jnthn | r: multi infix:<+>('S0', 'S0') { 'SS0' }; say 'S0' + 'S0' | 17:23 | |
p6eval | rakudo 4fb07b: OUTPUT«SS0» | ||
masak | :P | ||
17:23
kaleem_ left
|
|||
masak | jnthn: that... is the most *meaningless*... | 17:23 | |
jnthn | .oO( I guess I didn't win today's mini-challenge... ) |
17:24 | |
rurban | arnsholt: not yet | 17:25 | |
colomon | masak: then it's just S0 + S0 = S(S0 + 0) = S(S0) = SS0. But that's really awkward to express in p6 | ||
masak | jnthn: you're the guy in the group who, given the challenge to be the first to shout out an aquatic animal, shouts out "an aquatic animal!" :P | ||
colomon: I've done it three times now in the backlog ;) | 17:26 | ||
PerlJam | masak: By careful selection of axioms, you can prove anything. jnthn was just being efficient. :) | ||
masak | colomon: using sets, regexes, and functions. | ||
PerlJam: certainly more efficient that Russell and Whitehead ;) | |||
arnsholt remembers being shown how to do addition with Church numerals in Prolog | 17:27 | ||
Remarkably clever and a bit stupid at the same time =D | 17:28 | ||
17:29
spider-mario left
|
|||
masak | arnsholt: the big "aha!" moment for me with Church numerals and Church booleans came recently when I re-read TaPL. | 17:29 | |
PerlJam | masak: have you read Douglas Hofstadter's "Fluid Concepts and Creative Analogies"? | ||
17:30
spider-mario joined
|
|||
arnsholt | TaPL? | 17:30 | |
masak | arnsholt: they're both really small "machines" that programmatically express the intent of a number or a boolean. | ||
arnsholt: www.cis.upenn.edu/~bcpierce/tapl/ | |||
17:30
stevan_ left
|
|||
masak | PerlJam: yes, I believe I have. though it was a while ago. | 17:30 | |
arnsholt | Hmm. That looks like an interesting book | 17:31 | |
masak | maybe I should re-read it. | ||
17:32
kst` joined
17:34
kst left
|
|||
jnthn | pmurias: If you didn't get an answer on "what changed" yet, I think it was just the REPR data that P6int and P6num write out. | 17:38 | |
17:38
thou_ joined
|
|||
jnthn | (in the serialization thing) | 17:38 | |
17:41
thou left
|
|||
jnthn | FROGGS: On 77616, I know it completely makes sense from an implementation or even a "what it does" point of view but it's probably too surprising from a user point of view. | 17:42 | |
Unfortunately, I don't have much idea of a good fix. | |||
rurban | parrot master: --output=src/stage1/gen/nqp-mo.pir push_pmc() not implemented in class 'ByteBuffer' | 17:43 | |
17:44
fgomez left
|
|||
FROGGS | jnthn: I'd like to know what the user would expect | 17:44 | |
jnthn | FROGGS: Captures to happen in the order they textually appear in the source. | ||
FROGGS | brb, lunch | 17:45 | |
jnthn | FROGGS: Well, not happen. But be numbered in the resulting Match | ||
17:45
domidumont left,
domidumont joined
17:46
zby_home joined
|
|||
masak | "annual programming puzzles that get broken within a few months" -- without this having really to do with me, I'm a little offended. | 17:51 | |
arnsholt | I'm offended by most of the references to Perl 6 in that post, to be frank | ||
masak | well, jnthn's all-caps in the backlog pretty much sums it up. | 17:52 | |
and I actually prefer chromatic when he's bitter about the Parrot thing, as opposed to just ironically lashing out at nothing. | |||
colomon | masak: pointer? | ||
masak | colomon: www.modernperlbooks.com/mt/2013/02/...epalm.html | ||
follow that link at your own blood pressure. | |||
colomon | saw that, I meant to jnthn's response # masak++ | ||
already read it, alas | |||
masak | colomon: irclog.perlgeek.de/perl6/2013-02-07#i_6423589 | 17:53 | |
anyway. it's 2013, and we're actually growing alternatives to Parrot. this is good. | 17:54 | ||
17:54
Pleiades` left
|
|||
japhb | At the risk of sounding like I want to be in my own bubble, could we all please start ignoring the diatribes of certain embittered folk? | 17:54 | |
masak | oh, I was just going to write something like that. | ||
colomon | chr. sort of has a valid notion -- he's not going to work in p6 until someone else proves it's great. That's certainly his prerogative, but it's not in any way helpful. | ||
17:55
ggoebel_ joined
|
|||
japhb | I mean, he's welcome to keep smarting from old wounds, but I'd rather just make progress and heal through solving the real problems. | 17:55 | |
masak | japhb: +1 | ||
17:55
nebuchadnezzar left
17:56
dakkar left
|
|||
masak | I also fully agree with irclog.perlgeek.de/perl6/2013-02-07#i_6423648 | 17:56 | |
it's not even so much that Parrot wasn't any help at all -- it was quite useful for a number of years. | 17:57 | ||
skids | As far as P5 branding they should just fo the "Ruby on Rails" route and bundle all the Modern Perl modules up into one use statement and/or commandline flag and/or default and call it something and market that. | ||
masak | but Rakudo is outgrowing Parrot. | ||
ggoebel_ | phenny: tell jnthn are you also aware of wiki.jvmlangsummit.com/Main_Page ? -Links to presentations and slides from previous years are linked to from openjdk.java.net/projects/mlvm/jvmlangsummit/ | ||
phenny | ggoebel_: I'll pass that on when jnthn is around. | ||
masak | skids: sounds like a distribution to me. like ActiveState Perl or Strawberry Perl. | 17:58 | |
dalek | p: 6b5778e | jnthn++ | src/core/NQPRoutine.pm: Toss a bit of ported C that turned out unused. |
17:59 | |
17:59
Pleiades` joined
|
|||
colomon | I figure the best response to chromatic is just to make great software in Perl 6. That's why I started porting the ABC module back to Rakudo this morning.... | 18:01 | |
PerlJam | colomon++ | 18:02 | |
skids | masak: like that, but without actually needing to "use" everything in the bundle. | 18:03 | |
masak | rn: multi plus(@a, []) { @a }; multi plus(@a, [$b, *@b]) { plus [@a, $b], @b }; say elems plus [i], [i] # using multis and nested sigs | ||
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2» | ||
masak | four solutions. I think there's a nice blog post in here. | ||
arnsholt | Ooooh, JavaZone call for speakers is finally open =D | 18:04 | |
And the deadline is April 15 | |||
bbkr__ | FROGGS: in "abc" ~~ /a ~ (c) (b)/ match order is reversed and capture order should follow this logic so $0 should be "c". I haven't found any explicit spec phrase describing this case that but TimToady said it is a bug :) | ||
arnsholt | I'm definitely going to have to submit a talk | ||
masak | bbkr__: definitely a bug. | 18:05 | |
bbkr__: the parentheses are numbered by their location in the regex. | |||
bbkr__: not by match order. | |||
PerlJam | bbkr__: and this has *always* been the case, even before Perl 6 :) | ||
jnthn | Difference in Perl 6 being that they're more tree-ish than flat and some end up as an array | 18:06 | |
phenny | jnthn: 17:56Z <ggoebel_> tell jnthn are you also aware of wiki.jvmlangsummit.com/Main_Page ? -Links to presentations and slides from previous years are linked to from openjdk.java.net/projects/mlvm/jvmlangsummit/ | ||
jnthn | ggoebel_: Thanks for that link...I'm sure I read some of those before having found them separately | 18:07 | |
ggoebel_: But it's nice to have the collection of links and more to read :) | |||
arnsholt | jnthn: Are there any tricks I can use to reliably trigger a Parrot GC run? | 18:09 | |
18:13
nebuchadnezzar joined,
bbkr__ left
18:20
SmokeMachine left
18:21
fhelmberger left
18:23
SmokeMachine joined
|
|||
TimToady | usually the best way to do distributed cache invalidation (under shared memory, anyway) is with an incrementing generation counter | 18:28 | |
that's how Perl 5 does cache invalidation | |||
though the most important thing to prevent monkeypatching is to allow classes to be closed at CHECK time unless someone requests they stay open | 18:30 | ||
18:30
fgomez joined
|
|||
jnthn | arnsholt: There's a pir op that will do it...sweep, iirc | 18:31 | |
dalek | p-jvm-prep: 23756ca | jnthn++ | / (4 files): Chase REPR protocol and serialization changes. |
||
masak | rn: say chars "一" ~ "一" # arguably, this is a solution, too. | ||
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2» | ||
jnthn | .u 一 | 18:33 | |
phenny | U+4E00 CJK UNIFIED IDEOGRAPH-4E00 (一) | ||
jnthn | oh, it's...one. | ||
18:34
SamuraiJack_ left,
stevan_ joined
|
|||
masak | ;) | 18:35 | |
it works with other characters, too. | |||
rn: say chars "①" ~ "①" | |||
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2» | 18:36 | |
jnthn | rn: say chars "" ~ "" | ||
p6eval | rakudo 4fb07b, niecza v24-19-g5f89e5f: OUTPUT«2» | ||
18:37
japhb_ joined
|
|||
masak | so one CAT FACE WITH TEARS OF JOY plus one CAT FACE WITH TEARS OF JOY also equals 2 ;) | 18:40 | |
TimToady | rn: say chars '𪚥' ~ '𪚥' | 18:41 | |
p6eval | niecza v24-19-g5f89e5f: OUTPUT«4» | ||
..rakudo 4fb07b: OUTPUT«2» | |||
TimToady | that should be 8, since each of those is 4 dragons | 18:42 | |
masak | *lol* | ||
I presume that is a Nieczabug grounded in the fact that .NET can't Unicode? | |||
TimToady | UTF-16 damage I think | ||
18:42
Chillance joined
|
|||
masak | right. | 18:42 | |
Java has the same issue. | 18:43 | ||
jnthn | Yeah, we're gonna have that on the JVM until we get NFG done. | ||
TimToady wonders how much support there is in JVM for ropes of integers of various sizes | 18:45 | ||
masak .oO( No Frivolous Garbage ) | |||
TimToady | s/in JVM/available with JVM/ | ||
dalek | p-jvm-prep: 1d63164 | jnthn++ | / (2 files): First pass at nqp::istype. |
18:49 | |
p-jvm-prep: bd77eed | jnthn++ | nqp-src/NQPCORE.setting: Start pulling in some of the multi-dispatch code. This isn't the dispatcher itself, just the candidate sorting code. Need to implement some of the extra ops before multi-dispatch will actually work. |
|||
jnthn thinks he needs some dinner before he works any more... :) | 18:50 | ||
[Coke] | Order in, bill it to the channel. :) | ||
jnthn | [Coke]: Oh, I've eaten out so much in the last few days while up in Stockholm that I'm quite happy to nom something simple at home today :) | 18:51 | |
18:57
MayDaniel joined
19:02
MayDaniel left
|
|||
imarcusthis | jnthn: your work is giving me actual hope of having perl6 in production. | 19:09 | |
jnthn: any idea how big the footprint of the runtime of perl6 on top of jvm would be? Would it be feasible for Android development, for instance? | 19:10 | ||
19:16
GlitchMr- left
19:17
GlitchMr joined
|
|||
rurban | slow startup, fast run-time | 19:21 | |
i.e. not suitable for scripts, but good for running server or long-running apps | 19:22 | ||
imarcusthis | rurban: not suitable for mobile apps either then. | 19:24 | |
rurban | well, I guess on android the jvm will startup much faster | ||
because it is hot | |||
jnthn | My first guess was that the question was actually about memory footprint... | 19:25 | |
In which case, anything I could give would be a wild guess at this point. | |||
imarcusthis | yeah, the jvm does. the question is the layer on top. For instance, jruby has a rather large one, so it gets a slow startup time if you try to build an android app on it. clojure is much smaller. | 19:26 | |
jnthn: that's understandable. | |||
rurban | My guess is even bigger than jruby | ||
jnthn | rurban seems happy to guess wildly though :) | ||
rurban | yes :) | ||
imarcusthis | yepp :) | ||
19:32
SmokeMachine left
|
|||
TimToady wonders how much you can bring in lazily on the first eval | 19:40 | ||
(assuming precompilation) | |||
19:41
sftp left,
grondilu left
|
|||
TimToady | we've intentionally designed p6 with very few required globals | 19:41 | |
19:42
sftp joined
|
|||
TimToady also wonders how much we can save by caching precompiled bits at a finer granularity than the file, where caching the whole file is just a degenerate case | 19:44 | ||
there are really only three tricky bits to that: 1) establish the identity of a piece of unique code, 2) establish the identity of each unique slang we're using, and 3) establish the relationship between those identities | 19:46 | ||
19:46
shinobicl joined
|
|||
tadzik | oh, jnthn, I left you some pull requests btw | 19:47 | |
at least one of them is necessary :) | |||
TimToady postulates that most failure modes would come down to failure of identity somehow | |||
shinobicl | hi! i'm making a presentation in my company, to introduce TDD for a big proyect we're starting. Yes it's sad many shops don't use TDD yet :( | ||
i remember a nice graphic of the advance in the perl6 test suite | |||
where i can find the current one? | 19:48 | ||
i want to use it as an example in my presentation | |||
19:49
SmokeMachine joined
|
|||
TimToady | you might be reduced to searching the irclogs | 19:50 | |
diakopter | also, those graphics have several interpretations | ||
19:50
diakopter sets mode: -o diakopter
|
|||
shinobicl | oh well... i'm gonna use one i found from 2009 | 19:50 | |
perlgeek.de/blog-en/perl-6/musings-...chart.html | 19:51 | ||
PerlJam | shinobicl: TDD isn't appropriate for every problem either :) | ||
shinobicl | on, in this case it applies. There are some ancient APIs and we have to keep compatibility with them | ||
19:52
spider-mario left,
SmokeMachine left
|
|||
shinobicl | s/on/oh/; | 19:52 | |
diakopter | note how the "spec" portion of that graph doesn't change much except at two discontinuities | ||
shinobicl: without more granularity, we can interpret that as more passing tests were added, not more of the spec was completed | 19:53 | ||
we still don't know how much of the original failing spec tests are now passing | 19:54 | ||
(or are no longer valid) | |||
19:55
zby_home left
|
|||
shinobicl | then is a much better example. Our customers are specially fond of making more and more requirements. So having a more specs through time is a realistic view of what happens here. | 19:56 | |
well, the old graphic will do... thanks :) | |||
19:57
jeffreykegler left
|
|||
diakopter | note: I'm not saying more of the spec wasn't completed. ;) just that we don't know about those original 3000, so you can't use that portion to show unregression | 19:58 | |
I mean, I suppose someone could run current rakudo against the spectest from 2008-05 | 19:59 | ||
20:02
atrodo_ joined,
atrodo_ left
20:10
Chillance left,
Chillance joined
|
|||
colomon is quite upset that chromatic is spreading p6 FUD on twitter. | 20:13 | ||
tadzik is quite upset with #perldrama | |||
20:15
domidumont left
20:16
SmokeMachine joined
|
|||
tadzik | I agree on twitter.com/chromatic_x/status/299...5258256384 though | 20:16 | |
20:16
atrodo_ joined,
uvtc joined,
atrodo_ left
|
|||
PerlJam | colomon: what fud this time? | 20:16 | |
20:17
cognominal joined
|
|||
dalek | ecza: 93138cc | (Tobias Leich)++ | src/NieczaActions.pm6: fixed typo in warning "conext" -> "context" |
20:17 | |
tadzik | and he even mentions panda. I'm flattered | ||
colomon | PerlJam: I'm particularly thinking of twitter.com/chromatic_x/status/299...4180018176 | 20:18 | |
tadzik | Well there *was* Lorito, but that was after Parrot was already doomed by Rakudo and developers were leaving. LOL | ||
doomed by rakudo, eh | |||
waste of time reading this, and yet I continue | |||
uvtc | Do both Rakudo and Rakudo Star now use "YYYY.MM" for their release version strings? | 20:20 | |
tadzik | I think so | ||
uvtc | I remember at some point regular ints were being used. As in, "release #42". | ||
PerlJam | Rakudo still does "release #42" AFAIK. | 20:21 | |
(at least it did at the last release *I* did :) | |||
uvtc | I mention it because: I was just looking at a Rosetta Code example. The example said, "works with Rakudo version #xx". Seems like those would be more useful if they said "works with Rakudo version 20xx.xx". | ||
_sri | the jvm might start slow, but you can use hacks like drip to make it look faster github.com/flatland/drip | 20:22 | |
20:23
jeffreykegler joined
|
|||
uvtc | Ok. Here. So, github.com/rakudo/rakudo/blob/nom/...ce/2013.01 is a file which, inside, says "release #60 ("Sonoma")". Seems like that would be much more useful if it just plainly said "release 2013.01". | 20:23 | |
20:24
jeffreykegler left
|
|||
masak | tadzik: yes, Parrot was clearly doomed by Rakudo. it scared away all the other HLLs that it had already... um. | 20:24 | |
20:24
SmokeMachine left
|
|||
tadzik | Apparently, being a VM for everyone was more important that being the best VM for Perl 6. And so the only customer went away | 20:24 | |
PerlJam | tadzik: something like that. | ||
atrodo | tadzik: Wasn't that the stated goal of parrot? | 20:25 | |
masak | note: we're not migrating *away* from Parrot. we're just targeting a good VM in addition. | ||
PerlJam | It's the curse of trying to design for an imaginary future. | ||
atrodo | (to be a vm for everyone) | ||
tadzik | atrodo: yes, and it failed at that goal | ||
it's what Tene++ said more than once and more than twice: no one cared about maintaing language interop | |||
so the first big goal died | 20:26 | ||
PerlJam | atrodo: sure, but the way you do that is be a really good VM for 1 lang, then another and another until you have "everyone" :) | ||
masak | "Parrot is a foundering project on top of a wonderful vision" irclog.perlgeek.de/perl6/2011-08-23#i_4316480 | ||
Tene | I did say that more than once. That's accurate. | ||
masak | Tene++ # pioneering language interop | 20:27 | |
Tene | blogs.gurulabs.com/stephen/2009/05/...ading.html | ||
tadzik | yeah | ||
that was thrilling | |||
masak | Tene: I would like to see that goalpost hit again some day. it's just that it won't happen on Parrot, realistically. | ||
20:27
sqirrel left
|
|||
uvtc | Dart has a little article on their site about the value of using a general-purpose VM vs. building their own custom one: www.dartlang.org/articles/why-not-bytecode/ . Not sure how much of that is relevant to the parrot discussion. | 20:29 | |
atrodo | From where I stand, it looked like Parrot gave up on language interop to focus on rakudo, then it floundered | 20:30 | |
masak | atrodo: that was after it decided to target "everyone" instead of Perl 6 for several years, though. | ||
Tene | atrodo: There was only one person who ever worked on language interop in Parrot. | ||
masak | atrodo: part of the story is that Parrot has had several leaders/architects over the years. with different goals. | 20:31 | |
tadzik | atrodo: precisely. And then it said "we actually want to target everyone, not rakudo" | ||
uvtc | I had the same impression of Parrot as what tadzik describes above ("being a VM for everyone"). | ||
tadzik | and so rakudo's goals and parrot's goals diverged | ||
atrodo | Tene: Which is disappointing, because that's why I got interested in parrot | ||
Tene | atrodo: Me too. | ||
[Coke] | atrodo: it was floundering before that. | ||
tadzik | parrot didn'd do everything to keep rakudo, so rakudo started to figure out its own solutions | ||
(as I see it) | |||
FROGGS | nqp: my @a := ("a", "b", "c"); say("abc" ~~ /@a+/) | ||
p6eval | nqp: OUTPUT«abc» | ||
[Coke] | because in trying to please everyone, it was not really good anything. | 20:32 | |
20:32
hoelzro|away is now known as hoelzro
|
|||
masak | tadzik: yes. | 20:32 | |
[Coke] | good *at* | ||
FROGGS | r: my @a = ("a", "b", "c"); say("abc" ~~ /@a+/) | ||
p6eval | rakudo 4fb07b: OUTPUT«#<failed match>» | ||
FROGGS | nqp: my @a := ("a", "c", "b"); say("abc" ~~ /@a+/) | ||
p6eval | nqp: OUTPUT«abc» | ||
FROGGS | cool | ||
masak | tadzik: but even given that, chromatic was and is overreacting, framing "adding another VM" as "actively migrating away". | 20:33 | |
atrodo | So does that mean anything that has the same goal of parrot is doomed from the beginning? | ||
masak | tadzik: when he can't do that, he frames it as "write a compiler or to port a half-finished project halfway to a new virtual machine" | ||
PerlJam | atrodo: not necessarily, though I'd say the probability is high. | 20:34 | |
masak | tadzik: which comes across to me as "I spent so many years on Parrot, and now you go and ruin it, you... meanies!" | 20:35 | |
PerlJam | atrodo: but, again, it depends on how they go about accomplishing the goal. | ||
diakopter | masak: let's not sugar-coat it. parrot will be left behind rather quickly. | ||
[Coke] | hurm. reply to chromatic on twitter, or update the README to explain why not every implementation may not pass all the tests on any given day. | ||
atrodo | masak: Honestly, I think he's just as frustrated at parrot | ||
PerlJam | diakopter: maybe it will spur some good development in parrot-land? | 20:36 | |
colomon | diakopter: but if it is left behind, it will be because it couldn't compete with JVM. | ||
atrodo | PerlJam: Without a major undertaking with tuit's, even by one person, parrot's probably done | ||
Well, that's the way I feel anyways | |||
colomon | diakopter: note that I'm not saying it cannot compete with JVM. I'm just saying for sure Rakudo will not abandon Parrot if Parrot out-performs JVM. | 20:38 | |
masak | diakopter: I agree. Parrot will be left behind. but the *act* of *adding another VM* shouldn't cause such panic if all was right with the original VM. | ||
diakopter stops breathing for a minute | |||
(re colomon) | |||
masak | colomon: I... | 20:39 | |
colomon: that comes off as "very optimistic" at this point. | |||
uvtc | Are there plans for creating a separate/different Rakudo distribution for Rakudo + JVM? | 20:40 | |
diakopter | a VM with 50,000 man hours is going to outperform one with a million? | ||
masak | I mean, not only is Parrot crap at backward-compat, I/O, GC, threads, and API documentation, it's slooooooooouuw. | ||
atrodo | diakopter: So you're saying v8 can't be faster than JVM? | ||
skids | well that depends what percent of those man-hours were focused on performance :-) | ||
diakopter | <sigh> | ||
PerlJam | uvtc: probably the default VM will just switch to be JVM with Parrot as an option. | ||
diakopter | atrodo: no, it can't. at what the JVM provides. | 20:41 | |
at implementing javascript, yes. | |||
uvtc | PerlJam: Ah, thanks. | ||
colomon | masak: I know which way I'd bet. I'm just pointing out that if Parrot loses out here, it will be because it isn't as good for this purpose. | 20:42 | |
masak | exactly. | ||
I remember the parrotsketch when chromatic first panicked about this. | 20:43 | ||
diakopter | as soon as someone realizes you can build nqp+rakudo in 1/8 the time on another VM, the person will flip parrot's bit. | ||
masak | already at that point, I couldn't but think that he didn't *want* to find out whether a VM such as the JVM would be a better fit for Rakudo. | ||
as if the knowledge itself would be harmful. | |||
"let's not go there! it won't lead to anything good!" | 20:44 | ||
the JVM (or any other mature VM) representing some kind of dangerous knowledge that Man should never go near. | 20:45 | ||
colomon | Let me just say, based on my Niecza experience, that having Rakudo on JVM available would be a good thing even if Parrot can somehow outperform JVM. | ||
masak | s/even if (.*)// | ||
colomon: Parrot can't outperform the JVM. | |||
colomon: a cheetah cannot outperform the speed of sound. | 20:46 | ||
diakopter | at _anything_ that can be measured. | ||
uvtc | masak: <Gandalf>There are few who can.</gandalf> | ||
tadzik | I'm amused how chromatic is picking out IRC lines and responding to them on twitter | ||
diakopter | chromatic: your mom is a your mom joke. ;) | 20:47 | |
masak | tadzik: chromatic has "quit" IRC :P | 20:48 | |
masak waves to chromatic | |||
diakopter | we need a chromatic_x twitter relay bot | ||
masak | oh god no | 20:49 | |
jnthn | I...I'm not sure we do. :) | ||
tadzik | ahaha | ||
masak | "we missed him so much, we rebuild him as software" | ||
colomon | masak: I'm trying not to frame this as a "Parrot sucks" discussion. If for no other reason than I find it hard to believe there are people out there who'd prefer Rakudo to stick strictly to Parrot even though they don't think it will ever offer the same performance JVM does. | ||
diakopter | I...can't believe either of you thought I was serious. | ||
masak | rebuilt* | ||
colomon: understood. it's just that your framing doesn't pass the basic test of credibility ;) | 20:50 | ||
diakopter: any sufficiently advanced irony is indistinguishable from sincerity. | 20:51 | ||
PerlJam | heh | ||
diakopter | s/was/was or even could possibly be/ | 20:52 | |
masak | diakopter: I've never met you in meatspace. | 20:53 | |
diakopter: I don't hear tone of voice when I read your IRC utterances. | |||
diakopter | ok. I should have ended it with a ! or ;) | ||
also, s/your mom joke/<insert your mom joke here>/ to be clear | 20:54 | ||
masak | what's the rule called that says "you can't tell if someone on the internet is a kook or is playing one really well"? | ||
tadzik | "On the internet nobody knows you're a dog"? | ||
Tene | masak: Poe's Law | ||
masak | right! | ||
"Without a winking smiley or other blatant display of humor, it is impossible to create a parody of fundamentalism that someone won't mistake for the real thing." | 20:55 | ||
like how people can't tell troll edits on ConservaPedia from honest edits ;) | |||
PerlJam | masak: so ... is chromatic a kook or playing one really well? ;> | 20:57 | |
skids | Wasn't there an inverse as well -- eventually a fundamentalist community will turn on its main proponents because they think they are being satired? | ||
PerlJam wonders if "kook" counts for chromatic's derailing bingo card. | 20:58 | ||
20:58
cognominal__ joined
20:59
cognominal left
|
|||
diakopter | masak: I really don't think tone of voice would have helped. I would have said it quite sincerely/excitedly in person, for even more irony. I guess I assumed you would have to assume I'm a GDFMoron for me to actually be serious. You know, like an in-joke. | 21:02 | |
21:02
kaare_ left
21:03
cognominal__ left
|
|||
swarley | I was thinking about Go as a target language | 21:03 | |
masak | PerlJam: I don't think chromatic is a kook. I think he's quite a good developer. he got dissatisfied with Rakudo and Parrot at some point, and he is determined to tell the world about it, even at the expense of the people in those projects. | ||
uvtc | Last time I built R*, I used `perl Configure.pl --gen-parrot --prefix=/home/<you>/opt/rakudo-star-20yy.mm`. That --prefix part is no longer required (now that R* installs into its own "install" dir), correct? | ||
21:04
cognominal__ joined
|
|||
masak | diakopter: for me, deciding whether you were serious or not didn't factor into it. my initial reaction was still "oh god no" :) | 21:05 | |
diakopter | masak: that's just not accurate. I can see how "trying to be helpful" is an internally-rational justification/motivation | ||
uvtc | Also, is the "--gen-nqp" required for building R*? (The readme doesn't mention it, but the rakudo.org/how-to page does.) | ||
diakopter | telling the world about dissatisfaction isn't the goal | 21:06 | |
jnthn | uvtc: It's not needed; you'll get an NQP built for you with just --gen-parrot | ||
uvtc: I think the --prefix just matters if you care where it ends up building it. Note it's not relocatable. | |||
diakopter | (also, I'm not claiming the trying to be helpful is failing) | ||
uvtc | jnthn: thanks. Not sure why I previously used --prefix. | ||
ggoebel_ | phenny: hug everyone | 21:07 | |
jnthn | uvtc: Well, maybe you knew where you wanted it to install ;-) | ||
skids | .oO(maybe time rakudo/INSTALL.txt got a quick brushing) |
21:08 | |
uvtc | jnthn: I'm guessing I just wanted it installed in the simplest/easiest way possible. | ||
masak | diakopter: I'm sorry. I'm just not very good at explaining chromatic's motivations. | ||
21:08
cognominal joined
|
|||
tadzik | hugme: hug everyone | 21:09 | |
hugme hugs everyone | |||
uvtc | Me so happy. | ||
Me want to cry. | |||
diakopter | it must feel nice to be discussed at length as a third person :) | ||
21:09
cognominal__ left
|
|||
uvtc has watched too much Seinfeld. | 21:09 | ||
tadzik | I'm so happy I | ||
damn you, return key | |||
I'm so happy I'm renaming myself to tadzik 7 | 21:10 | ||
masak | pbfcomics.com/115/ | ||
tadzik | :D | ||
skids | hugme: hug hugme | ||
hugme hugs hugme | |||
skids | Aw LTA | 21:11 | |
tadzik | hugme: are awesome | ||
hugme: hug are awesome | |||
hugme hugs are | |||
tadzik | pfft! | ||
masak | you need to use non-breaking spaces. | ||
uvtc | skids: No, I think the install doc (READM) for R* looks good. I was just confused. | ||
README* | |||
tadzik | doy++ | 21:12 | |
uvtc | rakudo.org/how-to-get-rakudo/ mentions --gen-nqp, but maybe that's for building Rakudo, not R*. | ||
skids | It's just that rakudo/INSTALL.txt doesn't explain gen-nqp at all. | 21:13 | |
uvtc | skids: btw, I only see a README in there --- no INSTALL.txt file. | 21:14 | |
readme contains install instructions. | |||
masak | hugme: hug are awesome | ||
skids | Because rakudo is a subdir in the * ditsro. | ||
hugme hugs are awesome | |||
diakopter | hugme: foo bar | ||
hugme: hug foo bar | |||
21:14
stevan_ left
|
|||
hugme hugs foo bar | 21:14 | ||
diakopter | \o/ | ||
masak | diakopter: " " <-- non-breaking space | 21:15 | |
diakopter: am I misreading irony again? :P | |||
diakopter | I need a macro for "I can't believe you thought I was serious" | ||
masak | hey, I was quicker this time in discovering it! | ||
uvtc | 's bend like a reed in the wind. | ||
skids | Emoticon early, emoticon often. | 21:16 | |
felher | fun with regexes: www.coinheist.com/rubik/a_regular_c...d/grid.pdf | 21:17 | |
skids | something tells me the next p6cc will involve solving one of those. | 21:19 | |
jnthn | felher: Oh wow... | ||
felher | jnthn: I can only recommend it. Was quite funny to solve :) | ||
21:22
Pleiades` left
21:23
cognominal left
|
|||
PerlJam | jnthn: It's from www.mit.edu/~puzzle/ | 21:24 | |
21:25
pupoque joined
|
|||
felher | PerlJam++ #thnx, didn't know that. :) | 21:25 | |
21:28
Pleiades` joined
|
|||
uvtc | Currently, when building R*, the "Configure" step builds both Parrot and NQP, correct? | 21:29 | |
skids | Yes. | 21:30 | |
jnthn | uvtc: Yes | ||
21:30
cognominal joined
|
|||
uvtc | jnthn: grazie. | 21:30 | |
Just finished the R* `make` step. Would be nice if it gave me a success message at the end. | 21:31 | ||
I got: | 21:32 | ||
/home/john/opt/rakudo-star-2013.01/install/bin/parrot -o RESTRICTED.setting.pbc src/gen/RESTRICTED.setting.pir | |||
./perl6 --target=pir --output=lib/lib.pir lib/lib.pm6 | |||
./perl6 --target=pir --output=lib/Test.pir lib/Test.pm | |||
./perl6 --target=pir --output=lib/Pod/To/Text.pir lib/Pod/To/Text.pm | |||
make[1]: Leaving directory `/home/john/opt/rakudo-star-2013.01/rakudo' | |||
FROGGS | well, make: Leaving... is success :o) | ||
skids | I thought it used to. | 21:33 | |
uvtc | The "make[1]" makes me think it's returning with status 1 (rather than 0 == success). | ||
FROGGS | but some instructions would be nice | ||
skids | (used to say something like "you may now .... make install") | ||
uvtc | (regardless, the `make test` reports "Result: PASS" at the end. Which is nice.) | ||
skids | Note the install involves a lot of compiling of P6 code to pir. | 21:34 | |
geekosaur | no, "make[1]" means that the make directly under the top level one finished | 21:37 | |
that is, if one of your makefile rules does "make ..." then the sub-make will identify as "make[1]", and if that also does a "make ..." then the new one will identify as "make[2]", etc. | 21:38 | ||
nesting depth | |||
uvtc | geekosaur: Ah, thanks. | ||
Still would be nice to see a little, "There. That wasn't so bad. Building has completed." message. :) | |||
geekosaur: Yeah, the `make rakudo-test` ends the same way (after reporting PASS). | 21:39 | ||
21:43
uvtc left
|
|||
skids notices decrease in IRC traffic after posting of rx crossword puzzle. | 21:43 | ||
timotimo | skids: i tried it a while ago and was not very effective | 21:50 | |
geekosaur not even sure what it's asking, but focus is very much elsewhere atm | 21:51 | ||
timotimo | it asks you to put in letters so that the regexes from the sides match in all intersections | 21:52 | |
geekosaur | ah. | ||
21:54
PacoAir left
21:58
cognominal left
22:01
cognominal joined
|
|||
timotimo | god, the twiter website is godawful for following conversations | 22:02 | |
22:03
benabik_ left,
skids left
22:04
amurias left
22:09
cognominal left
22:10
shinobicl left
22:14
cognominal joined
22:24
cognominal left
|
|||
dalek | p-jvm-prep: 07feece | jnthn++ | / (8 files): Implement capture manipulation ops. These will be used by multiple dispatch. |
22:31 | |
p-jvm-prep: c8228f6 | jnthn++ | / (2 files): nqp::invokewithcapture; stub multi cache ops. The multi-dispatch cache can come later; may be a good LHF task since it's porting something that already exists, mostly. |
|||
p-jvm-prep: ac11f0c | jnthn++ | nqp-src/NQPCORE.setting: Pull in rest of multi-dispatch code. |
|||
p-jvm-prep: 4914292 | jnthn++ | src/org/perl6/nqp/runtime/Ops.java: Fix a handful of thinkos. With this, multi-dispatch just about works. |
|||
masak | jnthn++ # doing stuff | ||
22:31
hoelzro is now known as hoelzro|away
|
|||
timotimo | sweet | 22:32 | |
22:32
ggoebel_ left
|
|||
timotimo | maybe perl6 isn't going to die after all! | 22:32 | |
FROGGS | hehe | ||
moritz | nr: die "OH BUT I'M DYING RIGHT NOW!!!" | ||
p6eval | rakudo 4fb07b: OUTPUT«OH BUT I'M DYING RIGHT NOW!!! in block at /tmp/Spkdibx8V0:1» | ||
..niecza v24-20-g93138cc: OUTPUT«Unhandled exception: OH BUT I'M DYING RIGHT NOW!!! at /home/p6eval/niecza/lib/CORE.setting line 1435 (die @ 5)  at /tmp/l2VdgT_9Dt line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4227 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.… | |||
jnthn is somewhat relieved that he can copy-paste about 250 lines of code that topo-sort multi-dispatch candidates and do the dispatch from NQP on Parrot into NQP on JVM, and have it all work pretty much right off once he gets the ops ported over correctly. | 22:34 | ||
22:34
cognominal joined
|
|||
timotimo | :) | 22:34 | |
colomon | jnthn++ # making cool stuff is easily the best possible response to chromatic | 22:36 | |
jnthn | Now to figure out why it gets complicated things correct and easy things wrong... | 22:37 | |
timotimo | computers have very strange interpretations of what "complicated" and "easy" mean :D | 22:40 | |
jnthn | oh... | 22:41 | |
I think I may see it. | |||
22:43
pupoque left
|
|||
dalek | p-jvm-prep: 2974b29 | jnthn++ | nqp-src/NQPCORE.setting: Missing null check. |
22:52 | |
p-jvm-prep: 88dc081 | jnthn++ | t/nqp/51-multi.t: We now pass 51-multi.t. |
|||
timotimo | ql | 22:54 | |
masak | \o/ | ||
colomon | \o/ | 22:55 | |
22:57
cognominal left
|
|||
jnthn | To whoever had the segfault earlier: I think I just found a GC marking bug introduced into P6opaque. | 22:58 | |
22:58
donaldh joined
23:04
cognominal joined
23:09
bluescreen10 left
23:12
stopbit left
23:14
cognominal left
|
|||
colomon | jnthn: sorry to bother you with this when you are doing good work, but any thoughts on how to make { '('(<digit>+) {} [<t_elem>* <stem>] ** { +$0 } <slur_end>? } work in Rakudo? It's the only thing stopping ABC from passing all its tests there now, so far as I know. | 23:15 | |
23:15
cognominal joined
|
|||
masak | colomon: which part of it doesn't work? | 23:15 | |
jnthn | ** with a closure is NYI | ||
masak | oh! | 23:16 | |
colomon | yeah, that part | ||
jnthn | I think you may be able to make it with a * and an assertion or something like that. | ||
*fake | |||
masak | does it work with a variable? | ||
jnthn | No, that's Equally Hard | ||
masak | oh, ok. | ||
figures :) | |||
jnthn | As in, if we implement one the other is easy ;) | 23:17 | |
masak | right. | ||
I guess both of those offset some DFA-ness of the rule. | |||
jnthn | It kinda needs some kinda quantdyn subtype of QAST::Regex. | ||
colomon | it's easy enough to make it work for given N, but the general case is prettier. | ||
jnthn | Which, yes, is not declarative. :) | ||
colomon | it's not a show stopper at all, but going back to the 3-tuplet 4-tuplet 5-tuplet version seems like a moral defeat in the context of the day. If you know what I mean. (ie I want it to work as well on Rakudo as it does on Niecza.) | 23:19 | |
masak .oO( bait deployed. will it work? ) :) | 23:22 | ||
jnthn | r: say '2 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/ | ||
p6eval | rakudo 4fb07b: OUTPUT«「2 45」 0 => 「2」 1 => 「4」 1 => 「5」» | ||
jnthn | r: say '1 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/ | ||
p6eval | rakudo 4fb07b: OUTPUT«「1 4」 0 => 「1」 1 => 「4」» | ||
jnthn | r: say '3 456' ~~ /(\d+) \s (\d)*? <?{ $1 == $0 }>/ | ||
p6eval | rakudo 4fb07b: OUTPUT«「3 456」 0 => 「3」 1 => 「4」 1 => 「5」 1 => 「6」» | ||
colomon is mostly hoping for a clever workaround for now | |||
jnthn | Can you do something with that? | ||
colomon | maybe. | 23:23 | |
(making nom for family) | 23:24 | ||
this is relying on (\d)* returning a parcel, right? | 23:28 | ||
dalek | p: 263332d | jnthn++ | src/6model/reprs/P6opaque.c: Try and fix some offset calculations. May deal with the 32-bit issue, but something still seems amiss. |
23:29 | |
jnthn | colomon: Yes, it''d be more clearly written $1.elems == $0 | ||
23:32
cognominal left
23:33
skids joined
|
|||
jnthn | phenny: tell arnsholt I think some of the offset compuation wasn't quite right after all... Gave it a tweak in 263332d. | 23:33 | |
phenny | jnthn: I'll pass that on when arnsholt is around. | ||
23:36
sftp left
23:37
sftp joined
23:39
cognominal joined,
sftp left
|
|||
japhb_ | Re: 263332d ... man, this is just begging for a macro that just increases a size to the next increment of an alignment. | 23:41 | |
sorear | (x + 7) & ~7 ? | 23:42 | |
japhb_ | sorear, assuming power-of-two alignment, sure. | 23:43 | |
(Yes, I am aware that it is rare not to have that be true.) | 23:44 | ||
23:46
sftp joined
|
|||
pmurias | jnthn: we do you only use forceouterctx on nqp-java? | 23:53 | |
jnthn: what about nqp-js? | 23:54 | ||
pmurias is unbitrotting it | |||
jnthn | pmurias: No, it's the standard op for doing it. | ||
pmurias: Maybe I didn't get the Parrot-targetting code to use it yet, but there's no reson I can't. | 23:55 | ||
Actually nothing under :jvm(...) is very JVM specific. | |||
pmurias | ModuleLoader.class is | 23:57 | |
jnthn | pmurias: I menat QAST::VM.new( :jvm(...) ) | 23:59 |