»ö« 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. |
|||
masak | 'night, #perl6. | 00:04 | |
00:04
masak left
00:06
bacek left
00:09
jtpalmer joined
00:27
jferrero left
00:30
icwiener left
00:34
[Coke] joined
00:36
jimmy1980 left
00:44
HarryS joined
00:48
bacek joined
00:58
stkowski left
00:59
arlinius left
01:03
aindilis left
01:10
TiMBuS left,
arlinius joined,
TiMBuS joined
01:13
cotto joined,
Chillance left
01:14
jaldhar joined
01:22
jaldhar left
01:23
jaldhar joined
01:25
hercynium joined
01:26
hercynium left
01:52
Rotwang left
01:56
whiteknight left
01:58
joseph_ joined
|
|||
joseph_ | Is there a Perl 6 POD parser built yet, or is the specification still too shaky to do anything with? | 02:00 | |
02:06
joseph_ left,
joseph_ joined
|
|||
PerlJam | joseph_: you mean one written in Perl 6? | 02:07 | |
joseph_ | Yes | 02:08 | |
PerlJam | Not that I know of. | ||
There is Perl6::Pod on CPAN though. | |||
joseph_ | Okay. | ||
Do you think the markup is stable enough to build one (without heavy revision later)? | 02:09 | ||
02:09
cxreg2 is now known as cxreg
|
|||
PerlJam | yes | 02:10 | |
joseph_ | Great, thanks you. | ||
*thank | |||
PerlJam | joseph_: Are you going to write one? | ||
joseph_ | I was looking in to it. | 02:11 | |
A GSoC project for Parrot. | |||
PerlJam | Not Perl? | ||
joseph_ | It would be done in Perl (most likely). | ||
PerlJam | Seems like an odd gsoc project for parrot then :) | 02:12 | |
joseph_ | Yeah :) I think they wanted it to be able to parse their source code along with POD in other languages. | ||
PerlJam | Where did you read that the parrot folks wanted a Perl 6 POD parser? | 02:20 | |
joseph_ | On their wiki : trac.parrot.org/parrot/wiki/GSoc2011 | 02:21 | |
PerlJam | interesting ... I must have missed that last time I looked | 02:22 | |
joseph_ | Thanks for the help. | 02:23 | |
02:25
envi joined
02:26
joseph_ left
|
|||
dalek | Heuristic branch merge: pushed 47 commits to nqp by jnthn | 02:43 | |
02:58
orafu left,
orafu joined
03:02
ymasory joined
03:06
alester joined
03:17
risou joined
03:26
risou_ joined
03:28
risou left
03:39
stresstest5880 joined,
xinming_ is now known as xinming
03:42
stresstest5880 left
03:54
woosley left
04:02
woosley joined
04:04
st-6337 joined
04:06
woosley left
04:07
st-6337 left
04:11
st-6404 joined
04:12
st-6404 left
04:22
ymasory left
04:28
st-6603 joined
04:41
[particle] left
05:06
jaldhar left
05:07
jaldhar joined,
risou_ left
05:36
lue joined
|
|||
lue | hello world! o/ | 05:36 | |
sorear | hello lue. | 05:37 | |
05:55
jql joined,
nymacro joined
05:57
kaare_ joined,
envi left,
envi joined
05:58
[particle] joined
|
|||
sorear out | 06:10 | ||
06:18
Yunga joined
06:29
alester left,
alester_ joined
06:46
bacek left,
stigma_ joined
06:47
stigma_ left
06:51
donri joined
07:00
st-6603 left
07:07
st-8688 joined
07:12
st-8688 left
07:16
st-8806 joined
07:23
izydor joined
07:26
noganex_ joined
07:29
noganex left
|
|||
izydor | perl6: say "hello, izydor"; | 07:37 | |
p6eval | pugs, rakudo 792e86, niecza v3-82-g1dc43eb: OUTPUT«hello, izydor» | ||
izydor | oops | 07:39 | |
07:41
izydor left
07:43
araujo joined
07:59
kst joined
08:02
st-8806 left
08:07
kcwu left
08:11
risou joined
08:18
risou left
|
|||
dalek | p/ctmo: e04b77c | jonathan++ | src/metamodel/how/NQPClassHOW.pm: Make a comment reflect reality a little more. |
08:21 | |
p/ctmo: 4150953 | jonathan++ | build/PARROT_REVISION: Bump to latest Parrot to get fixes to make static lexpad bits work in non-trivial cases. |
|||
p/ctmo: 47001b3 | jonathan++ | src/NQP/Actions.pm: Install $?CLASS as a lexical symbol, not package. Now consistent with roles and classes, and also with nqpclr. |
|||
moritz_ | \o/ | 08:37 | |
masak++ colomon++ Util++ # p6cc | 08:38 | ||
08:46
alester_ left
09:00
fhelmberger joined
09:06
kst left,
nsh_ joined
09:07
kst joined,
mux joined
09:10
mux left,
nsh_ left,
kst left,
sftp_ joined
09:11
nsh_ joined,
kst joined
09:12
patch__ joined,
huf_ joined,
starcoder- joined,
kst left,
nsh_ left
09:13
gfldex_ joined,
nsh_ joined,
mux joined
09:14
kst joined
09:15
HarryS left,
Helios` joined
09:16
sftp left,
patch_ left,
Helios- left,
gfldex left,
starcoder- is now known as starcoder
09:17
flatwhatson joined
09:19
st-2451 joined
09:31
masak joined
|
|||
masak | morning, #perl6. | 09:31 | |
moritz_ | good morning masak | 09:33 | |
masak | I have a few comments about the Pod parser GSoC project. | 09:34 | |
I think if one is going to be written in Perl 5, it probably makes the most sense to start from Damian's. the one that's on CPAN. | |||
the win there could be in having one that's more current. Damian's is a bit dated. | 09:35 | ||
in the best case, that could lead to a number of spec clarifications, etc. | |||
moritz_ | phenny: tell jnthn that on latest nqp/ctmo, I have a test failure in the 3rd test of 55-multi-method.t: Ambiguous dispatch to multi 'bar'. Ambiguous candidates had signatures: (then an empty line) | 09:36 | |
phenny | moritz_: I'll pass that on when jnthn is around. | ||
masak | but the Big Win -- and one I hope to do in a grant some day if nobody beats me to it -- would be to implement the Pod 6 spec in Rakudo. | ||
with all the bindings etc that are possible in a full Perl 6 implementation. | |||
moritz_ | phenny: tell jnthn (maybe related) was it intentional the that "Bump to latest Parrot" commit (4150953) just deleted a newline, and didn't actually change the parrot revision? | 09:37 | |
phenny | moritz_: I'll pass that on when jnthn is around. | ||
donri | I wonder if a Perl 6 module installer system would need a way to describe language dependencies | ||
09:37
awoodland left
|
|||
donri | Considering language sharing in Parrot, use :from etc | 09:37 | |
moritz_ | masak: agreed on all accounts | ||
masak | donri: as far as I'm concerned, that's a cop-out and a fantasy. | 09:38 | |
09:38
mj41 joined
|
|||
donri | masak: oh? | 09:38 | |
moritz_ | donri: yes, once HLL interop works to a degree that can be presented to the casual user | ||
masak | donri: language interoperability is a problem we haven't even *begus* to tackle yet. | ||
s/begus/begun/ | |||
pro tip: check spelling of the words you emphasize. | 09:39 | ||
moritz_ | donri: historically many p6 infrastructure projects have failed to produce usable results due to overengineering. We have learned our lesson, and now start with simple things and gradually evolve them into more complex things | ||
donri | Tene had it working with Cardinal I think? | 09:40 | |
masak | back then, yes. | ||
donri: one of the things a native Rakudo Pod parser would be able to do would be to populate various $=POD variables. :from-ing out to Perl 5 would make that more difficult, since it would entail serialization etc. effort would be spent on the wrong problems. | 09:41 | ||
09:43
flatwhatson left
|
|||
Tene | donri: I had HLL interop working between rakudo, cardinal, partcl, my scheme impl, and a couple of others about 1.5 - 2 years ago, iirc. It wasn't a priority for anyone else in the parrot community at the time, and we didn't have any cross-language smoke testing, so it kept getting broken by others. | 09:44 | |
masak | :/ | ||
Tene | donri: after the third time it was broken and nobody but me cared, I stopped trying. I plan to get back to it after I get cardinal in a good state. | 09:45 | |
masak | \o/ | ||
Tene: do you feel that more design in the HLL interop area would help? | |||
either help making it more architecturally sturdy, or help putting it on the map for people. | 09:46 | ||
Tene | masak: The existing design is pretty solid, IMO. I expect there are some improvements that could be made, but I don't expect they would help at all. | ||
masak | ok. | ||
Tene | masak: I'm not all that confident in my evaluation there, though. I wouldn't be too surprised to learn that I'd missed something important, etc. | 09:47 | |
masak | Tene: the way I've always imagined it is that there are all these minute differences between different languages that would cause problems. maybe I'm worrying too much. | ||
Tene: for example, let's say a language without a concept of 'undef' communicates with one with such a concept. what happens when an 'undef' is returned across the barrier? | 09:48 | ||
Tene | masak: My approach has always been that when dealing with another language, you get that language's objects back. If you want to convert them into something more-locally-conventional, that's fairly meaningless to do in general, so you have to do it specifically on a case-by-case basis. | ||
masak | ok. that sounds fairly sane, actually. | 09:49 | |
the conversion is the task of the caller language. | |||
Tene | masak: There are the base vtable operations, like get_bool and get_str and so on. In Ruby, 0 is true, so if you get back a ruby 0 integer, it would be true, unless you explicitly convert it to a Perl integer. | 09:50 | |
Exactly. | |||
masak | I think the most immediate win for Perl 6 would be a HLL interop with and XML or database library. combined with jnthn's work on reprs, that could be really useful. | 09:51 | |
Tene | masak: i very much agree. | ||
masak | maybe I should have put that up as a GSoC Perl 6 task. | ||
is it too late to do that already? | |||
moritz_ | not at all | ||
masak | \o/ | ||
now I just need to find the tuits... :) | 09:52 | ||
masak writes something | |||
Tene | masak: The two big things for me with hll interop object mapping stuff is that 1) you don't actually want the semantics to change, if the foreign code returns something that it thinks is truthy, you want it to keep being truthy when you use it. | ||
and 2) by far the most-common use case is getting objects from a specific library or class, not primitives. In those cases, you *want* the objects you get back to have the API that's documented in the library docs. | 09:53 | ||
In the cases that you want something more-specific, you can write your own glue layer to represent the differences, but it's not meaningful to do it in general, and you lose far too much with any kind of least-common-denominator serialization format. | 09:54 | ||
masak | gist.github.com/888173 -- feedback welcome | 09:56 | |
I don't know where proposals such as this should really go, so someone is welcome to point me right, or just put it in the right place. | 09:57 | ||
Tene: I agree on all accounts. | |||
moritz_ | masak: epo.means.no/gsoc2011/ideas | ||
masak | thank you. | 09:58 | |
ooh, "Revive MAD". | |||
Tene | masak: The policy that I've maintained over all of this is that I fully acknowledge that I may be insufficiently smart to discover HLL mapping semantics that are good enough to be generally desirable, but every proposal I've seen or come up with to automatically map or whatever has been worse than just doing nothing. | ||
masak | :) | 09:59 | |
Tene | I'm enthusiastic about reviewing any proposals that anyone can come up with, because if someone *can* do it right, that would be pretty great, and I don't want to discourage anyone from trying. | 10:00 | |
moritz_ | I think it's a good step to do no conversions at all, and then experiment with an automaticaly adapt() multi sub or so that can try such mappings | 10:01 | |
masak | probably per-language-pair mappings can become popular and adopted. | 10:02 | |
moritz_ | aye | ||
Tene | moritz_: I think that there may be some utility in language-specific glue libraries that you can choose to use if you like. Rakudo could ship with Python.pm and Ruby.pm etc. (or pynie.pm and cardinal.pm). | ||
masak | updated: epo.means.no/gsoc2011/ideas | ||
moritz_ | or for rakudo I'd provide a basic mapper that turns every RPA into an array or Parcel or so | ||
10:03
nymacro left
|
|||
Tene | and definitely a library for adapting objects from the "parrot" language | 10:05 | |
10:05
nymacro joined
10:06
risou joined
10:16
bacek joined
|
|||
donri | masak: Oh, I wasn't talking about the pod parser | 10:17 | |
Is HLL interop supposed to work with things like IO streams? | 10:22 | ||
masak | donri: oh! | 10:23 | |
donri | So a Perl 6 package can say "this requires Python interop"; though then comes the question if it should be able to install Python packages too :P | 10:32 | |
masak | I wouldn't mind that. :) | 10:33 | |
donri: well, I certainly believe in HLL interop in general, it's just that... I haven't seen a good example of it yet. | |||
donri | Maybe you can simply run an existing Python installer in Pynie, then | ||
Native libraries are usually preferable, but the cost of porting isn't always worth it | 10:35 | ||
masak | nod. | 10:39 | |
10:45
Chillance joined
|
|||
Tene | masak: "good example"? You mean you haven't seen evidence that it's doable, or haven't seen good reasons to use it? | 10:47 | |
blogs.gurulabs.com/stephen/2009/05/...ading.html was a blog post I made around the time I had it working. | 10:48 | ||
10:48
f00li5h left
|
|||
Tene | I also had an example where I defined a class in ruby and subclassed it in rakudo, and then instantiated it in scheme. | 10:48 | |
I guess I didn't blog about it, though. | |||
blogs.gurulabs.com/stephen/2009/01/...guage.html -- using lolcode, APL, ruby, and scheme from rakudo. | 10:51 | ||
masak | \o/ | ||
I meant something like an example used to accomplish something else that's difficult to do without HLL interop. | 10:52 | ||
Tene | gist.github.com/128499 -- define a class in Ruby and subclass it in Perl 6 | 10:53 | |
masak: gist.github.com/147853 or gist.github.com/182167 are reasonable examples. Using core parrot libraries from an HLL. | 10:54 | ||
masak | aye, that's what I'm talking about. | ||
Tene | masak: more-generally, the idea is to re-use lirbaries from other languages instead of porting or reimplementing them. | 10:55 | |
masak | right. | ||
I get that. I just want to see it done :) | |||
Tene | masak: for example, using Perl 5's CPAN in Perl 6 | ||
masak | which isn't by far a solved problem, IIUC. | ||
at least I don't see Perl 6 programmers using CPAN on a massive scale. | |||
Tene | My traditional example is using ruby's Rails library from python or PErl 6 | ||
masak: it's not a solved problem, no. | 10:56 | ||
masak | speaking of which: at some point I'd like to pull together a group of great people and "revive" the idea of Ponie. | ||
I believe the time has come for that, or will come fairly soon. | |||
Tene | which was that? reimplementation or porting of Perl 5 to Parrot? | 10:57 | |
masak | yes. | ||
perhaps a reasonable first step is to spend a weekend hacking effort on STD_P5 | |||
10:58
kcwu joined
|
|||
masak | nowadays I'd view it as "porting Perl 5 to PCT/nqp" rather than "porting Perl 5 to Parrot"... | 10:58 | |
maybe the right moment for reviving Ponie is just after pmichaud/jnthn manage to get Rakudo running on .NET and/or JVM. | 10:59 | ||
Tene | masak: Sure. | 11:00 | |
masak: something I need to investigate more is what exactly MAD is in Perl 5. Check out MAD in perl5100delta | 11:01 | ||
masak | aye. I noticed there was a GSoC project proposal this year to revive it. | 11:03 | |
11:20
donri left
11:26
_twitch joined
11:28
risou_ joined,
risou_ left,
risou_ joined
11:30
whiteknight joined,
risou left,
risou_ is now known as risou
11:38
Rotwang joined
11:51
Psyche^ joined
|
|||
kaare_ | masak: the winnder? (blog-related) | 11:51 | |
11:52
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | kaare_: oh, indeed. fixing. | 12:11 | |
fixed. kaare_++ | 12:17 | ||
12:28
Helios` left
|
|||
masak | perl6: my Int @a; say @a[2].WHAT | 12:29 | |
p6eval | rakudo 792e86: OUTPUT«(timeout)» | 12:30 | |
..niecza v3-82-g1dc43eb: OUTPUT«===SORRY!===In my declaration, typename 'Int' must be predeclared (or marked as declarative with :: prefix) at /tmp/00BDqKXwIg line 1:------> my Int⏏ @a; say @a[2].WHATAny()Malformed my at /tmp/00BDqKXwIg line 1:------> | |||
..my ⏏… | |||
..pugs: OUTPUT«Scalar» | |||
masak | rakudo: (my Int @a)[2]; say "alive" | 12:31 | |
p6eval | rakudo 792e86: OUTPUT«maximum recursion depth exceeded in 'at_pos' at line 1 in 'at_pos' at line 5:CORE.setting in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting in 'at_pos' at line 5:CORE.setting in 'at_pos' at line 5:CORE.setting in 'Any::postcircumfix:<[ ]>' at line | ||
..1808:CORE.settin… | |||
masak | rakudo: (my @a)[2]; say "alive" | ||
p6eval | rakudo 792e86: OUTPUT«alive» | ||
masak submits rakudobug | |||
rakudo: my Int @a = 0, 1, 2; say @a[2] | 12:33 | ||
p6eval | rakudo 792e86: OUTPUT«maximum recursion depth exceeded in 'at_pos' at line 1 in 'at_pos' at line 5:CORE.setting in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting in 'at_pos' at line 5:CORE.setting in 'at_pos' at line 5:CORE.setting in 'Any::postcircumfix:<[ ]>' at line | ||
..1808:CORE.settin… | |||
masak | son, I am disappoint. | ||
12:35
Helios` joined
12:36
flatwhatson joined
|
|||
moritz_ | that's so long known | 13:04 | |
and at least submitted three times to rt | |||
masak | I should've guessed. | 13:07 | |
hm, a renewed Ponie effort needs to be pulled off in the right way. it needs some minimal buy-in from the Perl 5 side, preferably in the form of Perl 5 people actually in the group of developers. | 13:08 | ||
it needs frequent contact with p5p and Parrot and #perl6. | |||
it needs both a very concrete early roadmap and a monthly-or-so release cycle. | 13:09 | ||
sbp | for anyone reading the logs who is as confused as I was: "Over the past several years, one key aspect of the migration plan to Perl 6 has been the Ponie project, a fusion of the Perl 5 runtime with Parrot." - www.nntp.perl.org/group/perl.ponie....sg487.html | 13:13 | |
masak | right. | 13:15 | |
I'm guessing that's the "put out to pasture" message by Jesse. | |||
I'm mulling about what can be done about declaring Ponie "undead", five years later. | 13:16 | ||
new codebase, but same idea. | |||
one of the reasons Ponie was put out to pasture was "Parrot isn't ready; it's changing around too much". perhaps what we have going today with PCT and nqp is a lot more stable a foundation. | 13:18 | ||
13:20
charsbar_ left
13:21
charsbar_ joined
13:23
icwiener joined
|
|||
masak | which book, in retrospect, is the first one to belong to what has later been named Modern/Enlightened Perl? MJD's "Higher-Order Perl" immediately comes to mind. | 13:27 | |
tadzik | hai zebras | 13:29 | |
masak | tadzik! \o/ | 13:30 | |
moritz_ | masak: I agree (re HOP) | 13:35 | |
tadzik | I still haven't read that | 13:36 | |
masak | I think more books like HOP could, and should, be written. | ||
something like Perl and patterns (as in GoF), perhaps. | 13:37 | ||
basically, I'd love to read anything that assumed Perl and Moose knowledge :) | |||
13:41
gfldex_ is now known as gfldex
|
|||
masak | tadzik: if you're interested in functional programming, and different patterns relating to that, I cannot recommend HOP highly enough. | 13:44 | |
arnsholt | As one of the professors here likes to say: Learning functional programming makes you a better citizen =) | 13:45 | |
masak | a First-Class Citizen, even :P | 13:50 | |
arnsholt | *giggle* =D | 13:53 | |
Software that is valgrind-clean makes programmer-man happy. | 13:59 | ||
So much easier to make sure your hacking hasn't screwed it up =) | |||
14:00
joseph_ joined
|
|||
masak replied to joseph_ by email | 14:01 | ||
arnsholt: "Programmer-man"... Homo codiferus. | 14:02 | ||
arnsholt | I'll have to remember that. "Homo Codiferus" =D | 14:04 | |
masak | it would be just a happenstance if "codiferus" were legit Latin... but it sounds nice :) | 14:07 | |
arnsholt | Well, "codi-" isn't anything in particular (but so many biological names aren't) | 14:11 | |
And ferus means carrying, actually =) | |||
masak | oh, indeed. | 14:14 | |
14:15
pmurias joined
|
|||
PerlJam | Tene: TimToady can tell you all about MAD | 14:15 | |
14:18
HarryS joined
14:19
bacek left
|
|||
masak giggles | 14:20 | ||
PerlJam | masak: re ponie ... I think you're right; it's time is coming. Though it probably won't have anything to do with Parrot per se IMHO. "Porting" Perl 5 to NQP will make it happen. | ||
masak | nod. | ||
14:21
hanekomu joined,
arlinius left
|
|||
PerlJam | Though there was a gsoc last year (?) that built a real AST for Perl 5. I wonder whatever happened to that project? | 14:21 | |
built and *used* I should say | 14:22 | ||
masak | PerlJam: I task you to find out what happened to the project. this is the first time I hear about it at all. | 14:23 | |
masak adds "please" ;) | 14:24 | ||
PerlJam | Well, I think the reason knowledge of it hasn't been widespread is that it had all sorts of problems and no champion within p5p | ||
ergo, it was stillborn | 14:25 | ||
But I don't really know anything about the project other than it existed | |||
pmurias | PerlJam: did it even get accepted? | 14:27 | |
masak has a flash of realization that the Age of Perl 6 dialects is imminent | 14:28 | ||
jnthn: hurry up! :) | |||
jnthn: (but I don't begrudge you your vacation... enjoy, and then hurry!) :P | 14:37 | ||
14:39
YungaPalatino joined
14:41
Yunga left,
YungaPalatino is now known as yunga,
risou left
14:42
risou joined
|
|||
PerlJam | oh, I guess it wasn't a gsoc project. | 14:48 | |
news.perlfoundation.org/2009/08/200...nging.html | |||
14:55
kst left,
kst joined
14:57
hanekomu left
15:00
mberends joined
|
|||
masak | mberends! \o/ | 15:00 | |
mberends | o/ masak | ||
moritz_ | \o | ||
mberends | masak++ #`[ nice wrap up of p6cc] moritz_++ #`[ p6cc winner ] | 15:02 | |
moritz_ | colomon++ # close second | ||
mberends | aye | 15:03 | |
colomon | moritz_++ | ||
masak | moritz_++ colomon++ # great work, both of you! | 15:04 | |
mberends | .oO( I seem to have triggered a karma avalanche. Well, it was due ) |
15:06 | |
.oO( avalanches usually are ) |
15:07 | ||
masak | :) | 15:08 | |
15:12
kcwu left
15:16
kcwu joined
15:30
risou_ joined
15:32
risou left
15:33
risou_ is now known as risou
|
|||
sorear | masak! mberends! | 15:43 | |
mberends | sorear! hi! | 15:44 | |
masak | sorear! \o/ | ||
& | |||
sorear | masak: Did joseph_ email you? | 15:47 | |
joseph_ | I did. | 15:48 | |
sorear | masak: I've had some vague ideas about adding POD and use v5 to niecza ... | ||
oh joseph_ is here! \o/ | |||
hi | |||
joseph_ | Hello :) | ||
mberends | sorear: niecza use v5 would be awesome! | 15:49 | |
sorear | mberends: my thoughts have been more directed towards the runtime side of things, in particular the niecza calling system would need to be extended with some kind of wantarray | 15:51 | |
masak: do you still plan to do the #=/#| splitting S29 rewrite? | 15:53 | ||
15:58
noganex_ left
16:17
ymasory joined
16:21
sunnavy joined,
M_o_C joined
16:25
jedai joined
16:33
M_o_C left,
M_o_C joined
16:37
awoodland joined
16:46
icwiener left
|
|||
pmurias | sorear: hi | 16:47 | |
sorear: re wantarray you want to implement a Perl 5 frontend to niecza or embed perl5? | |||
16:50
M_o_C left
16:52
M_o_C joined
16:55
M_o_C left
16:58
whiteknight left,
risou_ joined
17:01
risou left,
risou_ is now known as risou
|
|||
masak | sorear: yes. only reason I didn't was that I lost momentum. but I still want it just as much. | 17:06 | |
joseph_: any questions, any at all -- please ask here or via email. I'm excited about the possibility of a Pod GSoC project. | 17:07 | ||
17:08
birdwindupbird joined
|
|||
masak | joseph_: continuing the discussion from the email thread: text/HTML/*roff/DocBook -- all those backends would simply be implemented as a module/class implementing some "interface". both Damian's module on CPAN and mberends' Pod parser contain prior art on that. | 17:09 | |
17:10
joseph_ left
17:11
joseph_ joined
17:12
flussence_ left
|
|||
mberends | masak: I often think about dialects (or subsets) of Perl 6, but so far the main philosophy has been an all-or-nothing proposition, probably to reduce the possibility of splintering. | 17:13 | |
masak | well, I see a great market for sublanguages. | 17:15 | |
something that doesn't try to replace the main Perl 6 dialect so much as specialize in some small area. | 17:16 | ||
17:17
flussence joined
|
|||
mberends | masak: but doesn't a sublanguage "extend" Perl 6? If not, there is the danger of diluting the brand, since the "official" definition of Perl 6 is based on full spectest compliance. | 17:18 | |
masak | mberends: you worry too much :) | ||
moritz_ | mberends: every module that imports types or subroutines extends Perl 6 in some sense | 17:19 | |
"so what?" | |||
mberends | :) | ||
masak | mberends: all I want is a constraint solver that has a much better syntax for constraint solving than regular Perl 6, but that "hides" most parts of Perl 6 most of the time. | ||
moritz_ | that's something you'd probably just import into a small scope | 17:20 | |
masak | indeed. | ||
17:22
MayDaniel joined,
noganex joined
17:30
MayDaniel left
17:33
Tedd1 joined
17:36
mj41 left
|
|||
masak | uhhh... someone please remind me -- if I want to call the token 'identifier' from my own grammar, what's the syntax? | 17:44 | |
17:45
M_o_C joined
|
|||
masak | rakudo: say Perl6::Grammar.identifier() | 17:46 | |
p6eval | rakudo 792e86: OUTPUT«Null PMC access in get_integer() in main program body at line 125» | ||
masak submits rakudobug | |||
rakudo: say "foo" ~~ /:lang(Perl6::Grammar) <identifier>/ | 17:49 | ||
p6eval | rakudo 792e86: OUTPUT«===SORRY!===Confused at line 22, near "say \"foo\" "» | ||
masak | shucks. that was my best guess :( | ||
moritz_ | rakudo: say Perl6::Grammar.parse('foo', :rule<identifier>); | 17:50 | |
p6eval | rakudo 792e86: OUTPUT«foo» | ||
masak | moritz_++ | ||
...and from within an ongoing parse? | |||
moritz_ | something like <.Perl6::Grammar::identifer> or so | 17:51 | |
masak | no, I meant today, now :) | ||
17:52
_twitch left
|
|||
masak gives up and copies 'token identifier' | 17:52 | ||
17:55
Hackbinary left
17:57
birdwindupbird left
|
|||
lue | hello world! o/ | 17:57 | |
17:58
jferrero joined,
jevin left
|
|||
masak | hellue! | 17:58 | |
17:58
uniejo joined
17:59
cognominal left,
cognominal joined
18:00
M_o_C left
18:03
M_o_C joined
|
|||
masak | ergh. sometimes I find rules (rather than tokens) hinder more than they help when parsing line-oriented formats. | 18:04 | |
rules are better for free-form formats. | 18:05 | ||
18:07
Hackbinary joined
18:10
prammer joined
18:11
jevin joined
18:13
hudnix left,
mj41 joined
18:16
envi left
18:17
mberends left
|
|||
masak | rakudo: my %twice = ($_ => $_ * 2 for 5, 42, 4096); say %twice.perl | 18:25 | |
p6eval | rakudo 792e86: OUTPUT«{"5" => 10, "42" => 84, "4096" => 8192}» | ||
masak | list comprehensions rock. | ||
benabik | That looks more like a hash comprehension... :-) | 18:26 | |
masak | :P | 18:27 | |
the hash is assigned to from a list, just like an array would be. | |||
that's as far as I can see one of the big wins of list (auto-)flattening, that arrays and hashes share the same "interface", making it easy to assign from one to the other. | 18:28 | ||
g'ah. how did I ever manage to write code before I started with TDD? :P | 18:38 | ||
moritz_ | masak: when I started programming I would write 40 lines of code, and they didn't work... | 18:47 | |
masak: then I started doing incremental coding, and basically tested everything along the way with print statements | |||
that's also testing, just not unit tests | 18:48 | ||
tadzik | gah. On my University there are still some people who write 200-300 lines of code before they even try to compile it | ||
the sad fact is that these people don't really know that they need help with programming from the very basics, they just keep on going | 18:49 | ||
18:55
arlinius joined,
wooden left
|
|||
lue | tadzik: I remember doing that once (>100 lines of code w/o tests). Part of it was that I didn't know about TDD or other testing methods, part of it was that the code couldn't be tested until most of it was coded. (never finished the project, btw) | 19:05 | |
19:06
wooden joined
19:07
Rotwang left,
st-2451 left
|
|||
masak | moritz_: it would be interesting to have some hybrid of a REPL and some IDE's debug mode. so each time you write a method, you basically have code running with test parameters as you write it. | 19:10 | |
19:10
st-7097 joined
|
|||
tadzik | lue: that has nothing to do with testing. It's like building a house of cards wearing a blind fold, you never know if even a one card stands when you put on another one | 19:11 | |
lue | Well, does it have something to do with it when I tell you I never compiled/ran said project? :) [granted, you don't compile Python, but...] | 19:12 | |
tadzik | you do | 19:13 | |
19:15
dju joined,
dju left
|
|||
lue | I vaguely remember .pyc files. When I say "you don't compile Python", in my head, compilation is something you do purposefully and lets the product run without the compiler. | 19:16 | |
masak | lue: compilation means preparing something, anything, which is then run. | ||
lue: the term stands in opposition to another term, 'interpretation'. | 19:17 | ||
moritz_ wonders who you compile code with interpreting it :-) | |||
masak | thich is when you go statement by statement, parsing and evaluating as you run. | ||
s/thich/which/ | |||
19:18
st-7097 left
|
|||
masak | lue: Perl, Python, Ruby. all of them compile code down to some sort of bytecode and then interpret that bytecode. even if you don't see it. | 19:18 | |
lue | My definition of compilation is different then. (Is there a word for how I see it, where I would say you "compile" C, C++, but I wouldn't say you "compile" Perl, Python? Or is it just two different forms of compilation w/o their own words yet?) | ||
masak | lue: it's just you having been unaware of the compilation phase until now. | ||
19:19
dju_ is now known as dju
|
|||
masak | it's really quite invisible in these dynamic languages. | 19:19 | |
but it happens, or the programs would run much slower :) | |||
moritz_ | lue: point is that compiling C and Perl isn't very different in essence. It's just that one of them writes the compilation to disc, and the otehr not | ||
masak | lue: anyway, not knowing anything about your project, "the code couldn't be tested until most of it was coded" sounds like a phony excuse. :) | 19:20 | |
moritz_ | the least you can do is to find out if it runs up to a certain point without throwing errors | 19:21 | |
even if you don't know what the data should look like | |||
lue | I'll now be reconciling the real definition of "compile" with how I see it. To me (until just now), the compilation process for C and for Perl6 were completely different things. | ||
19:21
joseph_ left
|
|||
masak | lue: if it helps, I've once held your exact view. :) | 19:21 | |
there's a nice web page out there completely demolishing the compile/interpret dichotomy. I don't remember who wrote it. someone like MJD or Alias, probably. | 19:22 | ||
19:22
st-7523 joined
|
|||
lue | masak: My project was an NES emulator. If I were to do it all over again (some day!), I would test the individual methods as I coded them. But the best way to test this sort of project is to code up to a point where it can execute some machine code. | 19:23 | |
masak | lue: why? | 19:24 | |
lue | Probably that's a holdover from how I saw the programming world pre-#perl6 :) | 19:25 | |
19:26
yunga left
|
|||
masak | I would suggest it is :) | 19:27 | |
lue | afk for just a moment. | ||
moritz_ could say so much about it, but it's probably like carrying coals to Newcastle | 19:28 | ||
19:28
lue left
|
|||
masak | now, it's not an absolute *obligation* to write the test first, but it's a very nice crutch to lean on until one masters TDD. | 19:28 | |
it really helps. | |||
19:30
nymacro left
19:31
lue joined
|
|||
lue | hello again o/ | 19:31 | |
masak | lue: I'm doing TDD development as we speak. turns out the second test "required" me to write >50 lines of code. that's quite a lot by my standards. | 19:33 | |
but during that time, running and re-running the two tests I have ~10 times has informed me on how the coding of those >50 lines is going. | |||
lue: have you tried tote? maybe you'd like it :) | 19:34 | ||
lue googles tote -bag | 19:36 | ||
masak | gist.github.com/834500 | 19:37 | |
lue: that's how it looks so far. | |||
also strangelyconsistent.org/blog/helpfu...d-on-crack and strangelyconsistent.org/blog/some-t...ts-on-tote | 19:38 | ||
basically, it's a little program that runs the tests for you as soon as you save a .t or .pm file. | 19:39 | ||
doesn't sound like much, but it boosts productivity and fosters the "right" habits :) | |||
19:40
st-7523 left
19:44
st-7869 joined
|
|||
masak | lue: have we talked about "red-green-refactor"? | 19:45 | |
lue | yes. | ||
masak | oh good. :) | 19:46 | |
19:46
st-7869 left
|
|||
masak | I find people sometimes undervalue the importance of seeing the test fail. | 19:46 | |
I just had a test unexpectedly succeed in the "red" phase -- and indeed, I had copy-pasted it and not changed it to what I meant. :) | 19:47 | ||
moritz_ has a love and hate relation to failing tests | 19:48 | ||
lue | That reminds me, I should work on my POD6 parser some more and add some failing tests, 'cos they all pass right now. | ||
masak | moritz_: that's a bit like saying that you like traffic lights, except the red ones :P | 19:49 | |
moritz_ | masak: oh, I don't mind the red ones, as long as they apply to the others :-) | 19:51 | |
masak | *lol* | ||
Schadenfreude. | |||
moritz_ | ... ist die beste Freude. | ||
masak | same saying in Swedish, except "beste" is "the only true". | 19:52 | |
moritz_ | I like that too :-) | ||
masak | seems to me that that meme must survive based on its tongue-in-cheek provocativeness. | 19:54 | |
I certainly like it too, but I don't really believe it. | |||
moritz_ | same here | ||
19:54
st-7943 joined
|
|||
moritz_ | when I see my small one laugh it's certainly neither Schadenfreude on her or my behalf | 19:55 | |
masak | right. and I bet that Freude is better. QED. | 19:56 | |
19:57
st-7943 left
|
|||
masak is getting to really like list comprehensions | 19:57 | ||
they're like map {}, but without the {} :) | |||
rakudo: (my %h).push: .denominator => .numerator for 1/2, 4/5, 3/2; say %h.perl | 20:01 | ||
p6eval | rakudo 792e86: OUTPUT«{"2" => [1, 3], "5" => 4}» | ||
masak | \o/ | ||
20:01
st-8196 joined
|
|||
masak hugs Perl 6 | 20:01 | ||
rakudo: (my %h).push: (.denominator => .numerator for 1/2, 4/5, 3/2); say %h.perl | 20:02 | ||
p6eval | rakudo 792e86: OUTPUT«{"2" => [1, 3], "5" => 4}» | ||
masak | could be that's slightly more efficient. then again, maybe not. | 20:03 | |
20:05
y3llow_ joined,
pothos_ joined
|
|||
lue | afk | 20:05 | |
20:07
pothos_ is now known as pothos,
y3llow left,
y3llow_ is now known as y3llow
20:16
whiteknight joined
20:40
donri joined
20:41
birdwindupbird joined
20:46
woldrich joined,
woldrich is now known as Guest42867
20:50
ymasory left
20:51
ymasory joined,
ymasory left,
ymasory joined
20:52
ymasory left
20:54
[particle] left
21:00
[particle] joined
21:03
M_o_C left
21:15
flatwhatson left
21:29
birdwindupbird left
21:31
M_o_C joined
21:32
cotto left,
bacek joined
|
|||
flussence | rakudo: say ("\t !" ~~ /^(\s*) (.*)$/).join(' ').perl | 21:45 | |
p6eval | rakudo 792e86: OUTPUT«"\t !"» | ||
21:48
hudnix joined
21:54
st-8196 left
22:04
kst left
|
|||
masak | rakudo: given "\t !" -> $line { my $prefix = ($line ~~ /^ (\h*)/ or '')]0 | 22:04 | |
p6eval | rakudo 792e86: OUTPUT«===SORRY!===Unable to parse blockoid, couldn't find final '}' at line 22» | ||
22:04
kst joined
|
|||
masak | rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*)/ or '')[0, 1]; say $prefix, ' ', $rest } | 22:05 | |
p6eval | rakudo 792e86: OUTPUT« » | ||
masak | oh right. | ||
rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*) (.*)/ or '')[0, 1]; say $prefix, ' ', $rest } | |||
p6eval | rakudo 792e86: OUTPUT« !» | ||
masak | rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*) (.*)/ or '', $line)[0, 1]; say $prefix, ' ', $rest } | ||
p6eval | rakudo 792e86: OUTPUT« !» | ||
masak | rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*) (.*)/ or '', $line)[0, 1]; say ($prefix ~ ' ' ~ $rest).perl } | 22:06 | |
p6eval | rakudo 792e86: OUTPUT«"\t !"» | ||
masak | hm, the 'or' thing is probably overkill. the regex can't not match. | 22:07 | |
'night, #perl6. | 22:08 | ||
22:08
masak left
22:27
st-8942 joined
22:29
Limbic_Region joined
22:32
ymasory joined
22:37
mathw left
22:39
st-8942 left
22:47
kaare_ left
22:53
starcoder is now known as starcoder-,
starcoder2 is now known as starcoder,
starcoder- is now known as starcoder2
22:58
risou_ joined
23:01
risou left
23:04
mj41 left
23:20
dorlamm joined
23:22
cognominal left
23:23
cognominal joined
23:25
Blueh joined
23:32
kst left,
kst joined
23:46
Blueh left
23:57
pmurias left
|