»ö« 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. |
|||
Tene | jnthn: you around? | 00:02 | |
jnthn | Tene: yes | ||
And not about to sleep! | |||
;) | |||
masak | bah, sleep! | 00:03 | |
Tene | jnthn: have time to work on 6model with me today? | ||
00:03
flatwhatson joined
|
|||
jnthn | Tene: Sure - got the link to the thing you were running into trouble with? | 00:03 | |
Tene | Sure; gist.github.com/838498 | ||
that's where I ended up; let me read through it and try to swap it back in | 00:04 | ||
00:05
Guest87704 joined
|
|||
Tene | I can't seem to work out where I left my local copy; good thing I posted it there. :) | 00:06 | |
jnthn | It was failing with Null PMC access in get_string()? | 00:07 | |
Tene | Yeah. | 00:08 | |
jnthn | OK, got that. | ||
Looking. | |||
dalek | psi: ed8d0a6 | masak++ | doc/ (2 files): [doc/ChangeLog] [doc/ROADMAP] updated One could argue that I should have done this before the release. One would be right. Oh well. Better late than never, I guess. |
||
jnthn | OK, it's that in: | 00:09 | |
my $speak := method ($self:) { say(pir::getattribute__ppps($self, Cow, '$!noise')); } | |||
that attribute comes back empty | 00:10 | ||
(e.g. null) | |||
00:10
colomon joined
|
|||
jnthn | and trying to say it gives the NPMCA | 00:10 | |
Trying to work out why. | |||
Tene: oh, I see it | 00:11 | ||
I think | |||
Tene: Yes, build_magic has the issue. | 00:13 | ||
One is that it doesn't strip the $! off before looking for the attribute name. Note that calling them $! isn't needed - I guess Ruby doesn't put a ! in attribute names? Or does it? :) | |||
Anyway, stripping the $! off when looking in the attributes hash helps. | |||
00:14
jferrero left
|
|||
Tene | It doesn't, but I saw some code in p6opaque I think that looked at that, and changing it to $! fixed some other bug I was seeing. | 00:14 | |
masak | jnthn: does that mean that you can't have both $!foo and @!foo in a class? | ||
Tene | and, no, usually ruby attribute names are just 'foo', but that's easy to hide behind whatever. | 00:15 | |
jnthn | masak: You can | ||
masak: Note we're talking about Ruby semantics here... :) | |||
masak | oh, ok. | 00:16 | |
jnthn | Tene: Yes, I'm guessing you were trying to get rid of "P6opaque attributes NYFI 4" | ||
Tene | That sounds right. | ||
jnthn | Oh! | ||
I see what's wrong | |||
if pir::defined($!parent) { | 00:17 | ||
Note that type objects are always going to come back as undefined | |||
Unless you do something to make that not be the case. | |||
Tene | Ah. | ||
jnthn | So defined checks on those will cause issues | ||
That in turn means that .parents gives back bad results | 00:18 | ||
Which in turn means P6opaque doesn't allocate space for attributes properly - which leads to the weird error. | |||
Tene | Ahh, interesting. | ||
diakopter | bwahaha at "NYFI" | 00:20 | |
00:21
coldhead joined
|
|||
jnthn | Not Yet *Fully* Implemented :P | 00:21 | |
00:21
colomon left
|
|||
masak | O RLY? | 00:21 | |
I'm sure we all read it that way... :P | 00:22 | ||
00:22
colomon joined
|
|||
jnthn | No, I...shoulda thought that one through more :P | 00:23 | |
masak | you should have Fully thought it through :P | 00:24 | |
Tene | I was using $!parent because ruby doesn't have MI, but @parent should work fine for this. | 00:26 | |
Hmm... making that change leads to NYFI 1 | 00:31 | ||
jnthn | C:\Consulting\nqp>nqp ruby.p6 | ||
mooooooo | |||
\o/ | |||
Tene: gist.github.com/857906 | |||
Tene | yeah, I like that better. | 00:32 | |
jnthn | And it seems to work :) | ||
diakopter | niecza: say [].WHAT | 00:33 | |
p6eval | niecza v3-48-gcbe9ac1: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object at Niecza.CtxListIterator.Get (Niecza.Variable obj) [0x00000] in <filename unknown>:0  at Niecza.Kernel.IterHasFlat (Niecza.VarDeque iter, Boolean flat) | ||
..[0x00000] in <filena… | |||
masak | niecza: say {}.WHAT | 00:35 | |
p6eval | niecza v3-48-gcbe9ac1: OUTPUT«Hash()» | ||
masak | niecza: say ().WHAT | ||
p6eval | niecza v3-48-gcbe9ac1: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type. at Niecza.CtxParcelList.Get (Niecza.Variable obj) [0x00000] in <filename unknown>:0  at CORE.C234_Parcel_2EStr (Niecza.Frame ) [0x00000] in <filename unknown>:0  | ||
..at Niecza.Kern… | |||
00:36
[particle]1 is now known as [particle]
|
|||
Tene | jnthn: Great; thank you. | 00:37 | |
Let's see how much more I can get working today... | 00:39 | ||
sorear | diakopter: uh... There isn't actually any automated procedure for that yet | 00:45 | |
diakopter | oh :( | 00:48 | |
well it's not that bad... like 1-2 minutes | |||
sorear | cp run/* boot/run; cp obj/* boot/obj should work | 00:53 | |
diakopter | cool; thanks | 00:56 | |
sorear | colomon: how do we interpret the squiggles on your latest blog post? | 01:00 | |
01:03
Chillance joined
01:04
pmurias left
|
|||
Tene | jnthn: just checking to make sure I haven't missed anything; there isn't a way in nqp to indicate that an nqp class declaration should use a specific knowhow, is there? | 01:05 | |
jnthn | Tene: No | 01:06 | |
Tene: Generally, it's good to write the meta-objects, then use them from the language you're working on | |||
Tene: We maybe should add a way though... | 01:07 | ||
Tene | It would be convenient to me for bootstrapping purposes, at least. | 01:08 | |
Looks like it should be fairly straightforward. | |||
jnthn | Should be | ||
Tene | might be better to support adding a package_declarator rather than changing the default for class | 01:10 | |
jnthn | Yes, certainly | ||
That is essentially a langauge tweak | |||
But we're missing some of the other bits to do those yet | 01:11 | ||
Tene | seeing repeated multi rules with nearly-identical bodies rather irks me. That should be what the body of the proto is for. I don't remember if TimToady ever worked that out, though. | 01:12 | |
proto token package_declarator { <sym> :my $*PACKAGE-SETUP := PASt::Stmts.new(); :my $*PKGDECL := $<sym>; <package_def> }; | 01:13 | ||
masak | spec it and they will come. | ||
Tene | That's a bit besides the point, though. | 01:14 | |
masak | maybe. | ||
sorear wonders in jnthn's direction whether niecza/parrot should use nqp's 6model (with niecza-optimizations added) or a custom thing based on niecza.net's metamodel | 01:16 | ||
jnthn | Worrying about one Perl 6 implementation targetting Parrot is kinda enough for my brane... :) | 01:18 | |
01:19
rdesfo left
|
|||
jnthn | You probably could target 6model but... | 01:19 | |
I guess not also using other bits of PCT that work with it may mean re-inventing more wheels. | |||
A bunch of stuff is changing in that area at the moment. | 01:20 | ||
01:22
rdesfo joined
01:27
lopaway is now known as lopnor
|
|||
sorear | jnthn: How similar do you forsee 6model.net and Parrot's 6model/M1 being in the asymptotic future? | 01:32 | |
Tene | Hmm... p6opaque might not buy me that much, considering the default case in ruby for attributes is adding them to individual objects at runtime. | 01:33 | |
jnthn | sorear: No, P6opaque doesn't sound suitable for that. | ||
sorear | Tene: I recommend against using P6opaque then | 01:34 | |
jnthn | gah, | ||
s/sorear/Tene/ :) | |||
Tene | Bleh. I'll need to write my own repr then, I guess. :( | ||
jnthn | sorear: Probably conceptually similar, though I suspect the details of how they interact with the VM will be pretty different. | 01:35 | |
6model's .Net implementation has some way to go yet. | |||
Tene | Will p6opaque not support that at all, or will it just be pessimized? | ||
sorear | A lot of language will be able to use a "P6dynamic" repr, Tene | ||
jnthn | Tene: It's certainly sub-optimal | 01:36 | |
Tene: Are attributes very dynamic? | |||
Tene: And are they "flat"? | |||
Tene | "flat"? | ||
sorear | Tene: P6opaque needs to support $obj does anon role { has $.foo } | ||
jnthn | What is the relationship between an attribute foo in a parent class and an attribute foo in a subclass? | ||
01:37
porter235 joined
|
|||
jnthn | Can that even happen? | 01:37 | |
Tene | jnthn: none whatsoever; attributes are entirely per-object. | ||
so, yes, flat | |||
sorear | Tene: er | ||
jnthn is confused :) | |||
masak | it seems that almost no Fiver takes to the sequence operator infix:<...> immediately. I wonder why that is. | ||
flatwhatson needs to change his higlighting rules D: | |||
jnthn | Tene: Per object or per class? | 01:38 | |
Tene | jnthn: the only relationship between classes and attributes is what attributes an objects classes happen to set. Anyone can take any object and shove extra attributes into it at any time, basically. | ||
sorear | Tene: class A { has $!x; method foo { $!x++ } }; class B is A { has $!x; method bar { $!x++ } }; my $c = B.net; say $c.foo; say $c.bar | ||
Tene | in ruby, that would say 0\n1\n | 01:39 | |
sorear | Tene: in the Perl 6 spec and 6model, that prints "0\n0\n". In Rakudo and Niecza, that would say 0\n1\n | ||
OK | |||
jnthn | OK, so that $!x is the "same thing"? | 01:40 | |
Tene | Yes. | ||
jnthn | So essentially, an object's attributes could just be considered like a hash table? | ||
Tene | Yes. | ||
jnthn | Ah | ||
Tene | That's exactly what ruby does, in fact. | ||
jnthn | That's a very easy REPR to write then :) | ||
Tene: I'm happy to write it, if you'd prefer that. | 01:41 | ||
Can do it tomorrow. | |||
Tene | jnthn: That would be convenient for me. | 01:42 | |
jnthn | OK. | 01:43 | |
hackathon++ :) | |||
Tene | Now, I certainly could analyze classes and produce a list of attributes they happen to mention, to optimize for common cases. | 01:44 | |
So, if there's going to be a repr that can have optimized storage for some attributes, but still support arbitrary other attributes, that would be better. | 01:45 | ||
01:46
woosley joined
|
|||
Tene | I'd certainly like to provide type-constrained attribute declarations if people opt-in to using cardinal-specific features. | 01:46 | |
jnthn | *nod* | ||
Tene: I suggest let's make it work first, then do opts. :) | 01:47 | ||
Tene: But it'd be fun to do a bunch of those too :) | |||
Tene | I *could* just limit it to support for attributes used in class methods for now, but a flat hash-based repr would be better for now, and certainly might be useful for others in the future too. | 01:49 | |
01:51
porter235 left
01:55
Guest87704 left
|
|||
Tene | Yeah, I get NYFI 1 if I try to use attributes not named $!foo | 01:55 | |
02:00
Guest87704 joined
02:01
noganex_ joined
|
|||
Tene | Oh, no, nevermind. It works fine; I just didn't change it in one place. | 02:02 | |
02:04
noganex left
|
|||
takadonet1 | pyrimidine: ping | 02:06 | |
02:08
am0c joined
02:19
whiteknight left
02:27
lopnor is now known as lopaway
|
|||
takadonet1 | rakudo: role me{ subset Test of Int where { $_ == any(-1,0,1) }; has Test $.beer }; my $x= me.new( beer=>33); | 02:31 | |
p6eval | rakudo bd134e: ( no output ) | ||
masak | takadonet1: attribute type checking is not switched on. | 02:32 | |
takadonet1 | masak: what do you mean 'not switched on'? | 02:33 | |
masak | I mean you can type your attributes all you won't, but it's not checked at either compile- or runtime. | ||
s/won't/want/ | |||
takadonet1 | how do i turn it on then? :) | 02:34 | |
masak | good question :) | ||
the answer contains the phrase "Rakudo source code". | |||
takadonet1 | nuts | 02:35 | |
masak | and bolts. | ||
takadonet1 | and WD-40 | ||
masak | :) | ||
dalek | p/slp: 2e788f6 | jonathan++ | src/ (7 files): Move NQP into a HLL of its own. This is a pre-req for being able to HLL-map things for NQP's use, but will also go a long way to resolving NQP/NQP-rx symbol conflicts. |
02:39 | |
nqp/slp: eb5f068 | jonathan++ | src/NQP/ (2 files): | |||
nqp/slp: Register NQP as just NQP, not NQP-rx. | |||
02:39
dalek left
02:40
dalek joined,
ChanServ sets mode: +v dalek
|
|||
masak | sorear: ping | 02:48 | |
Tene | jnthn: I just got per-object singleton classes working. :) | ||
dalek | p: d3f4b23 | jonathan++ | / (15 files): Merge branch 'master' into slp |
02:49 | |
p: a630c2b | jonathan++ | src/pmc/nqplexinfo.pmc: Don't need to visit various a few things we'll only set up from the serialization context deserializer; clear up useless freeze/thaw that just called SUPER; add get_iter. |
|||
p: e08aaf1 | jonathan++ | src/pmc/nqplex (2 files): Fix some marking issues. |
|||
p: 5ad5467 | jonathan++ | src/ (2 files): Ensure we end up with runtime lexpads being NQPLexPad. |
|||
p: 35ee39a | jonathan++ | src/stage0/ (2 files): Fiddle with the bootstrap code so things build with the new lexpad classes. |
|||
p: a694c40 | jonathan++ | src/NQP/Actions.pm: Make sure lexpads are created of the correct type in compiled code. |
|||
p: dd13f30 | jonathan++ | src/pmc/nqplex (2 files): Ensure that NQPLexPad can cope with a Parrot LexInfo as well as an NQPLexInfo. |
|||
p: bb9ccfe | jonathan++ | src/stage0/ (4 files): Re-bootstrap with the static lexpad support. |
|||
jnthn | Tene++ | ||
masak | sorear: just wanted to say that niecza is working, and I can basically pick up markdown-p6 where I left off in early January. | 02:50 | |
and it's delightfully fast. | |||
02:59
colomon_ joined
03:00
colomon left,
colomon_ is now known as colomon
03:11
colomon_ joined,
colomon left,
colomon_ is now known as colomon
03:21
colomon left
03:22
takadonet1 left
03:23
colomon joined
03:24
rdesfo left
03:47
porter235 joined
03:51
porter235 left
03:54
hudnix left
|
|||
dalek | ecs: f5a9d2d | diakopter++ | S32-setting-library/Str.pod: fix omission in grammar Str::SprintfFormat |
03:56 | |
masak --> to airport with tadzik++ | 04:03 | ||
04:03
masak left
04:11
jasonmay_ is now known as jasonmay
04:13
ymasory left
|
|||
sorear | um, HOW old is yapsi? this looks like a PGE grammare. | 04:17 | |
anyways, Niecza's goal for March is to run Yapsi | 04:21 | ||
04:25
drbean left
04:26
drbean joined,
ribasushi_ is now known as ribasushi
04:28
colomon left
04:29
colomon joined
04:30
drbean left
04:32
drbean joined
04:36
satyavvd joined
04:37
drbean left
04:38
tyatpi_ joined
04:46
drbean joined
04:51
drbean left
04:53
drbean joined
04:57
drbean left
04:59
cjk101010 left,
orafu left,
drbean joined,
orafu joined
05:04
drbean left,
zac314159 joined,
zac314159 left
05:05
drbean joined
05:08
fith left
05:10
fith joined
05:11
kaare_ joined
05:13
drbean left
05:14
drbean joined
05:19
drbean left
05:20
drbean joined
|
|||
sorear | yapsi: if 0 { 1-- } | 05:21 | |
p6eval | yapsi: OUTPUT«===SORRY!===Unable to find module 'Yapsi' in the @*INC directories.(@*INC contains: lib /home/p6eval/.perl6/lib /home/p6eval//p2/lib/parrot/3.1.0-devel/languages/perl6/lib .)» | ||
05:24
drbean left
05:27
drbean joined
05:31
orafu left,
drbean left
05:32
orafu joined,
drbean joined
05:36
drbean left
05:38
drbean joined
05:40
colomon left,
colomon joined
05:43
drbean left
|
|||
sorear | phenny: tell masak I think there is a bug in line 814 of Yapsi.pm. | 05:45 | |
phenny | sorear: I'll pass that on when masak is around. | ||
05:48
porter235 joined
05:49
drbean joined
05:50
colomon left,
colomon joined
05:52
porter235 left
05:58
satyavvd left
06:02
takesako joined
06:08
satyavvd joined
06:12
cjk101010 joined
06:19
eternaleye__ is now known as eternaleye_,
eternaleye_ left,
eternaleye_ joined
06:24
PerlJam joined,
wolverian joined
06:38
GinoMan joined
06:50
__rnddim__ joined
06:51
__sri joined,
barika_ joined,
jaldhar left
06:52
og01 joined,
mathw_ joined,
betterworld joined,
pmichaud_ joined,
xinming joined,
avuserow_ joined,
szabgab_ joined,
VX64Z joined,
jaldhar joined
06:53
diakopte1 joined
06:54
Jim112 joined,
eviltwin_b joined,
c0tt0 joined,
domidumont joined
06:55
Guest87704 left,
flatwhatson left,
cottoo left,
domidumont1 left,
xinming_ left,
_sri left,
avuserow left,
Helios` left,
lue left,
flatwhatson joined,
eviltwin_b is now known as allbery_b,
Helios` joined
07:04
wtw joined,
wtw left,
wtw joined
07:06
noganex_ is now known as noganex
07:08
niooins joined
07:16
justatheory left
07:17
daxim joined
07:20
jql joined
07:43
lopaway is now known as lopnor
|
|||
sorear out | 07:45 | ||
07:45
_twitch joined
07:46
colomon left,
colomon joined
07:48
porter235 joined
07:52
porter235 left
08:10
niooins left
08:11
nymacro joined
08:32
GinoMan left
08:36
colomon left,
colomon_ joined
08:39
shi joined
08:45
silug_ joined
08:46
Axius joined
08:56
mathw_ is now known as mathw
09:02
lopnor is now known as lopaway
09:12
Mowah joined
09:16
Mowah left
09:22
tzhs joined
09:34
Axius left,
Jim112 left
09:44
dakkar joined
09:48
porter235 joined
09:53
porter235 left
10:00
Layla_91 joined
|
|||
Layla_91 | yaw people! B) | 10:00 | |
daxim | hello | 10:01 | |
Layla_91 | daxim: nobody home I guess =) | 10:02 | |
moritz_ | \o | ||
Layla_91 | moritz_: since you are the sysadmin ;) a quick question: Someone keeps telling me that we can do url re-writing via DNS.. I always thought that this is a thing done via apache or ngnix or what ever webserver you use.. can we really do a url rewrite via DNS? | ||
daxim | that someone is confused | 10:03 | |
Layla_91 | daxim: the problem is that he is 10 years older than me and I can not argue with him :\ | 10:04 | |
daxim: I wish I was older :\ | |||
BinGOs | DNS can only affect the host part of a url. ie. myhost.com resolves to IP address 10.20.30.40 | 10:05 | |
daxim | you can. go up to him and say: dns is about hostnames. it does not care about the HTTProtocol. | ||
BinGOs | you can perhaps ( if you control the DNS servers that people are using for resolution ) redirect all host lookups somewhere else, so www.google.com goes to www.yahoo.com | 10:07 | |
10:07
woosley left
|
|||
moritz_ | Layla_91: just tell him "yes, it's possible, but it requires a proprietary business server solution that costs at least half a million USD per year" :-) | 10:07 | |
BinGOs | "The Internet says you are talking shit" should be statement enough. | 10:08 | |
Layla_91 | moritz_: looool :D | 10:10 | |
moritz_: I started learning git by the way :$ It is not so friendly.. but I am learning it for the sake of becoming a part of perl6 =) | 10:11 | ||
moritz_ | yay | 10:13 | |
Layla_91 | BinGOs: then you will have to find me a new job :P and I am still a college student :D | ||
moritz_ | (btw I'm not really a sysadmin, I just sometimes act that way) | 10:14 | |
Layla_91 | moritz_: well if you know how to setup a unix server, configure a simple clustered website then you are considered a sys admin ;) | 10:15 | |
moritz_ | Layla_91: my websites are usually cluttered, not clustered :-) | ||
BinGOs | Age is not an arbiter of merit. | 10:16 | |
10:17
arnsholt joined
|
|||
BinGOs *is* a sysadm | 10:17 | ||
Layla_91 | BinGOs: I started as a sysadmin but I think it is not nice for a girl :S | ||
moritz_: you are a sysadmin too ;) like Mr.TimToady B-) | 10:19 | ||
BinGOs | gender shouldn't make a difference. merit is merit. | ||
10:20
renormalist joined
|
|||
Layla_91 | BinGOs: anyway I switched to programming after few months of experience as a sysadmin.. so I have some experience.. which is not bad :) | 10:22 | |
10:23
lopaway is now known as lopnor
|
|||
BinGOs | ah okay >:) | 10:24 | |
Layla_91 | BinGOs: By the way, I had a question before switching, I have setup few centos based HA clusters.. then wanted to migrate to freebsd, do they have HA cluster suite for freebsd? I could not find a complete suite.. only sepeate elements for checking heart beats, etc... | 10:30 | |
BinGOs | Not something I have done with either linux or FreeBSD | ||
Layla_91 | BinGOs: ok, we are p6 people now =) | 10:32 | |
BinGOs | I'm more of a perl5 person, I just lurk here. | 10:33 | |
Layla_91 | BinGOs: I am currently a php person, and I knew little perl5 and perl6.. but I decided to learn them because of the community and the promissed zebra's guide =) | 10:34 | |
mux | Layla_91: there are a lot of different software you could use for HA clusters, depending on the applications they run; take a look at CARP for FreeBSD if you want something like VRRP | 10:35 | |
BinGOs | there is freevrrpd in FreeBSD ports | 10:36 | |
Layla_91 | mux: I understand, but what I meant is that they are organized in centos/rhel in a clustering group, in freebsd it makes you feel that you are hacking the system to become a cluster.. you look for separate packages and hack a way to make the failover of services happen.. or that is what I felt.. | 10:37 | |
10:38
donri joined
|
|||
mux | oh, I think I see; you're looking for something that is like already integrated etc | 10:39 | |
I don't know of any software like this for FreeBSD | |||
Layla_91 | mmm.. lunch break is coming.. thinking of something bad for health :P Burger King! :| bye all! =) | 10:40 | |
mux | BinGOs: under FreeBSD, you're much better off using CARP | 10:41 | |
10:43
Layla_91 left
10:59
colomon_ left
11:01
lopnor is now known as lopaway
|
|||
tadzik | o/ | 11:03 | |
moritz_ | \o tadzik | 11:04 | |
tadzik: seems you wanted to ask me something around midnight... what can I do you for? | 11:05 | ||
11:05
Maddingu1 is now known as Maddingue
|
|||
tadzik | I... don't think I remember :) | 11:05 | |
I'll see if I can figure this out from the context | |||
moritz_ | no worries | ||
tadzik | nah, I don't remember what was that :) Probably not important then | 11:06 | |
11:06
colomon joined
|
|||
tadzik | now where did HollandHackathon guys go? | 11:06 | |
11:16
agentzh joined,
colomon left
11:17
colomon joined
11:19
satyavvd left,
satyavvd joined
11:23
satyavvd left
11:24
mberends joined
|
|||
moritz_ | outer-inside.blogspot.com/2011/03/p...-6_06.html # woah, somebody translating my 5-to-6 articles to Japanese! | 11:26 | |
mberends | \o/ | ||
phenny | mberends: 06 Mar 12:59Z <masak> tell mberends lwn.net/Articles/328438/ | ||
moritz_ | \o mberends | 11:27 | |
mberends | :-D hackathons are fun | 11:28 | |
moritz_ | is this one already over? | ||
mberends | no! we hacked through to about 4am, had a hour of snooze and then drove tadzik to the airport. jnthn and masak are now still sleeping, we three shall carry on hacking until tomorrow evening | 11:30 | |
11:30
ingyfoo is now known as ingy
11:35
satyavvd joined
11:37
colomon_ joined,
colomon left,
colomon_ is now known as colomon
11:41
pmurias joined
11:49
porter235 joined
11:53
porter235 left
11:56
satyavvd left,
awoodland joined
|
|||
[Coke] | Oh, look, snopocolypse 2001.345 | 11:59 | |
2011, even! | |||
12:02
colomon_ joined,
colomon left,
colomon_ is now known as colomon
12:08
am0c left
12:25
agentzh left
12:35
fisted_ left
12:36
pmurias left
|
|||
dalek | ecza: d426c3d | pmurias++ | cl-backend/backend.lisp: [cl-backend] rename preinit to *preinit* |
12:39 | |
12:39
nymacro left
12:49
masonkramer joined
12:52
awoodland left
12:53
awwaiid joined
12:59
rdesfo joined
13:04
masak joined
|
|||
masak | good day, zebras | 13:04 | |
phenny | masak: 05:45Z <sorear> tell masak I think there is a bug in line 814 of Yapsi.pm. | ||
masak | sorear: will look at it. I don't see what/why yet, but it would explain a problem I had with recursion. | ||
13:05
masonkramer left
13:07
coldhead left
|
|||
takadonet | morning all | 13:10 | |
13:10
colomon left
13:11
colomon joined
13:13
Patterner left,
kaare_ left
13:15
meraxes joined
13:18
rdesfo left
13:22
fisted joined
|
|||
masak | takadonet: \o | 13:26 | |
jnthn | ohhai | 13:27 | |
moritz_ | loljnthnisawake! | 13:30 | |
masak: how are those p5 timings coming along? | 13:31 | ||
13:31
mtk joined
|
|||
masak | moritz_: they are coming along. | 13:31 | |
staying awake all night, that was basically the mindless task I set myself to. | |||
moritz_ | masak: when you started the contest, did you expect the review to take so much time/work? | 13:32 | |
masak | no, I didn't. | ||
I expected to read through things once and be done with it. | 13:33 | ||
basically announcing the winner after the close of the contest. | |||
13:33
tyatpi_ left
|
|||
masak | on the bright side, I think I have a grasp on p5 now. the statistics actually helped. | 13:33 | |
moritz_ hasn't actually benchmarked his own submission | 13:34 | ||
it might be doing things in O(bad**n), and I wouldn't have noticed :/ | |||
masak | the timings I made are here: gist.github.com/853570 | 13:35 | |
I'm not going to collect more statistics than that. it takes so much time. | |||
moritz_ | wow, matthias' solution seems to be quite impressive | 13:36 | |
does it get the correct results? | |||
masak | yes. | ||
jnthn | 320 - segmentation fault | 13:38 | |
Wow! | |||
We win a stress test. :) | |||
masak | it's awful how much memory these solutions gobble up. | 13:39 | |
it's not *that* complex a problem. | |||
13:39
hudnix joined
|
|||
moritz_ | masak: time your own solution :-) | 13:39 | |
masak | heh :) | ||
jnthn | masak: It's as likely a Rakudo issue as anything. | 13:40 | |
masak | yes, I'm aware of that. | ||
I'm not blaming the contestants -- their solutions are fine, from a memory perspective. | |||
I'm blaming Rakudo/Parrot. | |||
I thought about timing a Perl 5 solution, and observing its memory consumption. | |||
13:47
awoodland joined
13:49
porter235 joined
|
|||
masak | but yeah, it's a bit unfair. | 13:52 | |
in a sense, everyone failed p5, because running the code on long strings is crap no matter whose solution you choose. | 13:53 | ||
but on the other hand, the contestants did what they could on top of Rakudo. | |||
moritz_ | huh? | ||
13:53
porter235 left
|
|||
masak | moritz_: oh. with the possible exception of matthias. | 13:54 | |
moritz_ | if the solution works as long as you're not hitting a platform limit, you've solved the problem, no? | ||
masak | oh, sure. | ||
moritz_ | the question is when it's OK to hit a platform limit | ||
masak | but look at the problem specification. | ||
it's going "long strings, long strings, long strings". | |||
moritz_ | so, what's a "long string"? | ||
more than a line of 80 columns? | 13:55 | ||
10GB of genome data? | |||
masak | yes. | ||
more like 10B | |||
more like 10GB than 80B. | |||
and that's... impossible in Rakudo today. | |||
I don't even need to try it to know that. | |||
so maybe the problem as stated was unsolvable. | 13:56 | ||
colomon | so.... to win p5 we needed to massively optimize Rakudo? | ||
masak | OTOH, the solutions are quite nice for shorter strings. | ||
moritz_ | he, I should have used nqp :-) | ||
masak | :P | ||
colomon: from my perspective, just looking at the statistics, it's clear who "won" p5. | 13:57 | ||
I think you'll agree. | |||
moritz_ agrees | |||
colomon | but you're not going to tell us yet? | ||
masak | colomon: look at the statistics :) | ||
gist.github.com/853570 | |||
colomon | (are the statistics posted? I've been offline) | ||
moritz_ | masak: at least if you set performance as the primary evaluation factor | 13:58 | |
masak | right. | ||
colomon | !!!!!!!! | ||
masak | I value performance quite high, but it's not the only factor, of course. | ||
moritz_ | so, what did matthias do right? different algorithm? | ||
masak | you'll love it. | ||
I'm not going to spoil it. | |||
moritz_ | or "just" implemented it more correctly? regexes? | ||
takadonet | !!! | ||
masak | but the truth is so blatantly unfair that you'll probably facepalm seeing it. :) | 13:59 | |
moritz_ | lemme guess... there's a PIR dynop for LCS | ||
masak | actually, I didn't expect this at all to happen in the p5 task. | ||
moritz_ | and he loads that | ||
masak | nope. | ||
but interesting guess. | |||
moritz_ | or a binding to a C library/API call | ||
masak | nothing like that. it's pure Perl 6. | ||
matthias did hack Rakudo before submitting his solution, though. | 14:00 | ||
if you recall. | |||
his was the only solution that I couldn't compile when getting it. | |||
moritz_ doesn't recall | |||
masak | because it required such a new Rakudo. | ||
I'll stop spilling clues. read the post, later today :P | 14:01 | ||
14:01
cjk101010 left
|
|||
colomon | afk but !!!!!!!!!!!!!!! | 14:01 | |
14:02
am0c joined
14:08
frodwith left,
_twitch left
|
|||
tadzik | masak: is Rakudo NP-complete alredy? | 14:09 | |
masak | tadzik: no, but jnthn and I will have a look at it later today. | 14:10 | |
moritz_ | tadzik: it's even Touring complete, if you neglect memory limitations | ||
masak | does "Touring complete" means "big and unwieldy like a touring bus"? :P | 14:11 | |
moritz_ | s/o// :-) | ||
but yes, that's about it | |||
if you consider that most programming languages only allow memory usage by a fix width integer address, they are all DFAs, technically | 14:12 | ||
jnthn | oh gah | ||
looks like we don't differentiate sink and eager context in Rakudo. | |||
masak | o.O | ||
this... explains a lot... | |||
jnthn | for @massive_thing { }; 1; # the for keeps all it's f**king results | 14:13 | |
masak weeps | |||
jnthn | Only to throw that huge list away | ||
No wonder people find large iterations slow! | |||
masak | RakuD'OH | ||
donri | This is good right, means there's room for optimisations? | ||
masak | *lol* | ||
jnthn | Well, more room to not be stupid at least... | ||
moritz_ | pmichaud_++ has been wanting to implement sink context detection at codegen level for ages | 14:14 | |
takadonet | well lately I noticed a big difference in speed already . Cannot wait for more optimisations! | ||
14:15
mberends left
|
|||
jnthn | I hadn't realized we didn't even do it *there*. | 14:15 | |
moritz_ | jnthn: I think it's done, but not exposed to anything that the compiler writer could use | 14:16 | |
TimToady | "Sink me!" --The Scarlet Pimpernel | 14:17 | |
masak | sounds like a quote out of Masochistic Battleship. | 14:18 | |
or perhaps Misere Battleship :P | |||
mathw | Hmm, well at least it's something to improve | 14:19 | |
jnthn | BTW, the special case of .comb that takes no arguments can probably be made a bunch faster. | ||
(e.g. the one that just returns the chars) | 14:20 | ||
masak | \o/ | ||
moritz_ | using pir::substr? | ||
jnthn | That could work, yeah | ||
At the moment we match /./ loads of times | |||
moritz_ | oh f*ck | ||
jnthn | Like, once for every char in the string. :) | ||
moritz_ | maybe I can make my p5 submission faster retroactively by fixing up rakudo :-) | 14:21 | |
masak | hehe :) | ||
moritz_ | masak: does that count? :-) | ||
masak | moritz_: yes and no. | ||
jnthn | The patch will make me happy :) | ||
If that counts ;) | 14:22 | ||
masak | moritz_: you won't get credit for the Rakudo work. but your solution will fare better. | ||
moritz_: it still probably won't beat mattias's, though. | |||
moritz_ | likely. | ||
14:23
mberends joined
|
|||
tadzik | oh hi! | 14:23 | |
masak | tadzik! \o/ | ||
jnthn | o/ | ||
mberends | hi tadzik | ||
masak | tadzik: flight back go fine? | 14:24 | |
jnthn | tadzik: Hope your journey back was fine :) | ||
tadzik | yeah, it was not bad. I get a feeling that the pilot was playing around a bit just before the landing :) | ||
How's the hackathon? | |||
jnthn | We slept and now we're awake and hacking | ||
masak | it's like yesterday, only one day later. | ||
jnthn | I got apple syrup everywhere | ||
moritz_ | sounds like win | 14:25 | |
(for limited values of "everywhere" :-) | |||
(not on the keyboard, for example) | |||
jnthn | No, thankfully not there. | ||
mberends | tadzik: you left some unopened packages of nom here. we are confiscating them to compensate for the sleep deprivation caused by your early departure ;) | 14:26 | |
TimToady | the BDFL rules this to be valid | ||
mberends | and he gets to keep the colon! | 14:27 | |
moritz_ | where BDFL = BuDderFLy? | ||
masak | *lol* | ||
TimToady | moritz seems to be winging it... | 14:28 | |
mathw | Oh dear | ||
How bad these things look from the other side of an IRC window | 14:29 | ||
tadzik | mberends: the plums? | ||
mathw | But it does look like a lot more fun than work | ||
mberends | tadzik: aye, they look nomlicious | ||
tadzik | mberends: yeah, carry on, they're for you! | ||
masak | I think the "D" stands for "Dumbledore". TimToady and the Dumbledore of MoR share a bit of common behavior :P | ||
mberends | thx | ||
14:30
wallberg joined
|
|||
masak | wallberg! \o/ | 14:30 | |
[Coke] | marky mark? | 14:31 | |
14:31
kaare_ joined
|
|||
moritz_ | masak: you mean TimToady makes us carry around big rocks for no apparent reason? | 14:31 | |
masak | moritz_: no, the part about the rocks in MoR mostly confuses me. | 14:32 | |
moritz_: it seemed to be making a point about theories that don't have rational basis. | |||
like "we don't know if this works, but it couldn't hurt" being a bad argument for a theory. | 14:33 | ||
moritz_ | hm, maybe | ||
or the very deep gut feeling that very experienced people sometime have, but can't really give reasons for them | |||
masak | Harry makes the point that there are very, very many theories of which that argument could be made, all of them equally untested. | ||
right. Dumbledore is definitely running on very deep gut feeling. | 14:34 | ||
moritz_ | but also much deeper planning than he's willing to reveal | 14:35 | |
masak | in Hex, what usually happens is that deep gut feeling partly replaces deep planning. | 14:36 | |
adhering to known-stable patterns seem to guarantee that you end up on a sane path. | |||
essentially, encapsulating parts of the game-tree search into a better scoring function. | 14:37 | ||
Dumbledore seems to be doing a bit of that, with his archetypes "hero", "wise old wizard", etc. | |||
moritz_ | which kinda confuses me, because the "original" dumbledor seems to avoid those terms | 14:39 | |
donri | gut feeling is just intuition which is unconcious reasoning based on experience | ||
masak | no argument there. | ||
14:40
dukeleto joined
|
|||
donri | (i know this because of a gut feeling) | 14:40 | |
masak | moritz_: the original Dumbledore was definitely a deep planner, but he was a lot less of a comic relief :) | 14:41 | |
TimToady | that seems...incomplete... | ||
moritz_ | masak: aye | ||
TimToady | I think gut feeling also includes some degree of creative imagination that cannot always be lumped under "reasoning", but perhaps you're using the term more generally than I generally do... | 14:42 | |
masak | moritz_: making Dumbledore so frivolous is kinda funny though, because he's the pillar of seriousness and authority in the canon. | ||
14:43
colomon left
|
|||
donri | what is 'MoR'? | 14:43 | |
masak | the gut feeling/creative imagination is what I call "science" in strangelyconsistent.org/blog/im-doi...till-alive | ||
moritz_ | donri: "Methods of Rationality" | ||
masak | donri: oh, you're in for a treat! | ||
moritz_ | donri: www.fanfiction.net/s/5782108/1/Harr...ationality | 14:44 | |
moritz_ cackles evily | |||
masak | my brain kicks into "science mode" when code I run doesn't do what I expected. | ||
masak hopes donri has a few days of spare time | |||
moritz_ | just don't read it if you haven't read Rowling's Harry Potter, and plan to | 14:45 | |
donri | why what now | ||
moritz_ | it's full of spoilers of some sort | ||
donri | i mean the spare time :) | 14:46 | |
moritz_ | donri: just in case you start reading | ||
masak | donri: it's long and very, very good. | ||
donri | i suck at reading :( | 14:47 | |
tried to read the metamorphosis the other day and managed a few paragraphs | |||
masak | the Kafka one? | 14:48 | |
moritz_ | donri: they didn't resonate with me, and I finished quite early too | ||
14:49
colomon joined
|
|||
TimToady realizes that English allows not just - and ' in identifiers, but also * | 14:53 | ||
masak | oh f*ck... :P | 14:54 | |
frettled | cr&p :) | 14:55 | |
masak | sh!t | ||
frettled | But what does "cretp" mean? | ||
masak | sounds like a Lisp predicate to me. | ||
TimToady | it's a kind of French pancake | ||
frettled | Looks like it was written by someone overly fond of 'p'-suffixes for pointer variables. | ||
14:56
fisted left
|
|||
frettled | blamep :D | 14:56 | |
masak | "Have another crêtp, hot from the pan..." | ||
mux | it's a crxEApe | ||
masak | mux: O RLY? :P | ||
14:56
colomon left,
colomon joined
|
|||
mux | GOD DAMNIT LEARN HOW TO SPEAK FRENCH PROPERLY /cheese_eating_surrender_monkey_nazi> | 14:56 | |
TimToady | Sink me! | 14:57 | |
masak | mux: <whoosh> | ||
(sound of joke going over your head) | |||
mux | heh | ||
calling it a kind of pancake is however a grave offense. | 14:58 | ||
TimToady | possibly intended :) | ||
masak | perhaps even a "greve" offense. | ||
frettled | It's a kind of Dutch pancake, isn't it? *g,d&r* | ||
mux | heheh | ||
frettled | masak: offence grave? | ||
mux | I give up. | ||
dukeleto dreams of offenses dripping with gravy | |||
mux goes back to doing nothing at work while eating snails and drinking red wine | 14:59 | ||
frettled | mux: don't forget your baguette and garlic! | ||
moritz_ | mux: aren't you missing white bread and garlic butter... oh, flussence is faster :-) | ||
mux nods | |||
frettled | and where's your hat? | ||
masak | beret. | ||
14:59
fisted joined
|
|||
TimToady | I'm allergic to the baguette, but the rest sounds okay | 14:59 | |
masak | I think a striped shirt is called for, as well. | ||
frettled | Yes, quite possibly. | ||
moritz_ | TimToady: even to spelt based baguette? | 15:00 | |
frettled | and the tricolored badge | ||
mux | I'm not fond of snails, but we do have wonderful food and alcohols here | ||
frettled | mux: *sigh*, yes :) | ||
TimToady | moritz_: I've had trouble with spelt too | ||
too closely related, I guess | |||
moritz_ | mux: and in contrast to many Germans you *appreciate* food | ||
frettled | TimToady: even if it's spelt right? ;) | ||
mux | I'm kinda taken aback everytime I leave France and I try to buy some decent red wine. 1) There is none; 2) It's horribly expensive | 15:01 | |
15:01
awoodland left
|
|||
moritz_ | TimToady: does rye work better? or still too close? | 15:01 | |
mux | moritz_: oh yeah! | ||
TimToady | most rye bread is made out of wheat, at least in these parts | ||
but pure rye is fine | |||
frettled | mux: I'm happy almost every time I leave Norway and buy decent wine in restaurant, it's always cheap. :D | ||
15:01
plainhao joined
|
|||
frettled | TimToady: I guess you need to look for German immigrant shops. IIRC, German rye bread does not have other kinds of grain. | 15:02 | |
TimToady | mux: perhaps you should leave France for California some time :) | ||
masak | I'm trying to cut down on wheat simply for health reasons, but it's hard because wheat is everywhere. | ||
frettled | hoho :D | ||
moritz_ | mux: I just appreciate meeting with friends for a decent (often self-made) dinner, and dining and talking for hours. Here people often just throw stuff on the table, and expect you to finish in 20 minutes | ||
mux | frettled: I remember that red wine bottle we bought with friends at London for about 45 euros; the very same bottle was worth ~10 euros in France, and it wasn't even great wine. | ||
moritz_ | ok, sometimes I do too | ||
mux | TimToady: yeah, it's true there are good wines there | ||
TimToady | mux: though that might not remain true with global warming... :/ | 15:03 | |
frettled | mux: that's quite a nasty increase in price, yes. | ||
There's plenty of good wine from South Africa, too. | |||
…and I must admit that I'm rather fond of some Italian wines as well. | 15:04 | ||
mux | I'm really picky about wine, so you know :-P | ||
frettled | good! | ||
mux | otherwise it'd be no fun being french | ||
frettled passes mux a virtual bottle of Chateau de Pommard 2006 (goes well with canard à l'orange) | 15:05 | ||
mux | heh, Pommard is okay | ||
but I prefer Bordeaux wines | 15:06 | ||
donri read the first chapter | |||
15:07
shi left
|
|||
frettled passes mux a virtual bottle of Chateau Tour St. Pierre 1998 instead. | 15:07 | ||
15:12
am0c left
|
|||
donri has the same sleep disorder as harry in this fanfiction | 15:14 | ||
melatonin works wonders for it though, no magic there | 15:15 | ||
masak | donri: tell me more. | ||
donri | .wik non-24 | 15:16 | |
phenny | "Non-24-hour sleep-wake syndrome (Non-24) is a chronic circadian rhythm sleep disorder, classified within Chapter VI, Diseases of the Nervous System, in the ICD-10." - en.wikipedia.org/wiki/Non-24 | ||
masak | ooh | ||
15:17
benabik joined
15:18
wtw left
|
|||
donri | you're right this fanfiction is awesome | 15:20 | |
at least with chrome.google.com/webstore/detail/...mnklbhadhc :D | 15:21 | ||
15:21
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
masak | ooh | 15:22 | |
15:23
tyatpi_ joined
|
|||
masak | we have an LHF here on the hackathon. someone want it right away, or do I submit it to RT? | 15:24 | |
dukeleto | which hackathon? | ||
dukeleto has been under a rock | |||
daxim | netherlands? | 15:25 | |
masak | aye. | ||
post-NLPW. | |||
daxim | masak == everywhere | ||
you're becoming a second jnthn | |||
masak | mberends, jnthn, tadzik (up until yesterday), and me. | ||
jnthn | He's got some catching up to do on the punning though :P | 15:27 | |
masak | decidedly. | ||
I'm kilopuns behind. | |||
donri | "That is the most Ravenclaw thing I have ever heard." <3 | 15:28 | |
masak | right. the Houses are much more pronounced in MoR than in canon, IMO. | ||
15:30
Holy_Cow joined
|
|||
masak | LHF for anyone who's interested: rt.perl.org/rt3/Ticket/Display.html?id=85602 | 15:31 | |
sorear | good * #perl6 | 15:32 | |
15:36
mberends left
|
|||
diakopte1 | e | 15:37 | |
15:38
masak left
15:39
benabik left
15:41
benabik joined
15:44
hercynium joined
15:50
porter235 joined
15:52
diakopte1 is now known as diakopter
15:54
porter235 left
15:56
Rotwang joined
|
|||
sorear | TimToady: Does 'my class A::B { }' mean anything? | 16:03 | |
16:03
justatheory joined
|
|||
TimToady | I would take it to mean that A is a lexically scoped package that contains B | 16:06 | |
diakopter | std: my class A { }; my class A::B { }; class ::A { } | 16:08 | |
p6eval | std 4608239: OUTPUT«ok 00:01 118m» | ||
TimToady | as for tailored graphemes, I would be inclined to process them under the NFG mechanism, but the NFG conversion is diverted by the subtype of the string to a different grapheme recognizer (/me waves hands here) | 16:09 | |
shower & | 16:10 | ||
16:17
Patterner left
16:18
Psyche^ joined,
Psyche^ is now known as Patterner
16:25
Holy_Cow left,
colomon left
16:28
tyatpi_ left,
risou joined
16:30
masak joined
16:32
mberends joined
16:40
tzhs left
16:42
jaldhar left
16:43
jaldhar joined
16:44
M_o_C joined
16:48
gfldex joined,
dakkar left
|
|||
sorear | TimToady: How authoritative do you consider STD's add_name, is_known et al to be for defining name handling? | 16:54 | |
masak: hi. Niecza has a goal for March. | |||
masak | I saw. | ||
\o/ | 16:55 | ||
Yapsi has been getting past a bit of a bottleneck with the functions, by the way. things are seriously low-hanging-fruity now. | |||
TimToady | sorear: the rough outline is more authoritative than the details | 17:03 | |
the details could certainly use a heavy refactor or two or three, but the locations of particular actions ("at CHECK time") are more or less correct | 17:04 | ||
17:05
avuserow_ is now known as avuserow
|
|||
TimToady | and I think the subpackage processing is ~90% correct | 17:05 | |
give or take 50% :) | |||
PerlJam | Just the first 90% is correct ;) | 17:06 | |
sorear | TimToady: I'd be interested to hear more about what refactors you want. | ||
TimToady | correct as in hangs it on the right parent, not as is doesn't need a refactor | ||
sorear | (canonicalize_name gives me the chills) | ||
17:06
_buno_ joined,
M_o_C left
17:07
_buno_ left
|
|||
TimToady | it probably needs to be refactored by a different set of eyes than mine, given my eyes factored it in the first place | 17:07 | |
17:07
_buno_ joined
|
|||
TimToady | there's a reason they told me at the beginning of p6 that I wasn't supposed to do the implementation | 17:07 | |
sorear | I'll take that as an invitation then | 17:08 | |
there are a few odd corner cases with STD as is | |||
should I try to saneize them myself, or replicate existing behavior? | 17:09 | ||
TimToady | well, a little of both :) | 17:10 | |
17:10
rdesfo joined
|
|||
sorear | stuff like "my class GLOBAL::Foo" isn't well tested | 17:10 | |
and what STD currently does is...odd | |||
TimToady | I suspect it would currently produce a subpackage named GLOBAL, but that's probably...untoward... | 17:11 | |
masak | "untoward" looks a bit like an anagram of "do not want" :P | 17:12 | |
17:12
dorlamm joined
|
|||
TimToady | we can certainly carp about reserved top-level names being misused under 'my' and such | 17:12 | |
daxim | What is "Backstroke of the West", Mälex? | ||
sorear | The precise semantics of packages aren't well documented outside heads. I'm wondering how well they are in yours | 17:13 | |
TimToady | um, we're both in the U.S., so I can plead the 5th :) | ||
masak | :P | ||
TimToady | the semantics are perfectly clear--they should do what I want, if and when I ever figure out what that is... | 17:14 | |
where the first "I" is more of generic "Everyone" | 17:15 | ||
sorear puts on his royal we | |||
17:18
rgrau left
|
|||
sorear | TimToady: I'm also wondering if it makes sense to have STD loosely coupled to a "symbol tables" component | 17:19 | |
17:19
pmurias joined
|
|||
pmurias | sorear: hi | 17:19 | |
sorear | right now with niecza there's the STD builtin symbol table, and the Niecza symbol table, and things get confusing when they differ | 17:20 | |
pmurias | sorear: i'm having trouble mapping niecza's lexical model to the lisp one | ||
can a sub be created from outside the sub it's outer pointer points to? | 17:21 | ||
besides the YOU_ARE_HERE setting case? | |||
sorear | that, and static lexpads, are the only cases I know of | 17:22 | |
masak | so basically, a sub that's injected into another outer scope? | ||
pmurias | when a sub doesn't have RUN_ONCE set every time we look it up we get a clone copy? | 17:23 | |
sorear: what are static lexpads? | |||
sorear | niecza: sub foo() { sub bar() { say "Hello, world" }; INIT { bar } } | 17:24 | |
p6eval | niecza v3-49-gd426c3d: OUTPUT«Hello, world» | ||
sorear | foo() was never called, but a frame for foo has to exist in order for bar to have an outer | ||
that invented frame is the static lexpad | |||
StaticSub.protopad in the CLR emitter | 17:25 | ||
masak | right. same thing with loop blocks that were never iterated. | ||
pmurias | what does setting a variable there do? | ||
sorear | loop blocks that are never iterated ARE subs that are never called. S04:86 # perl6++ | 17:26 | |
pmurias: nothing very useful. (In the current implementation, the static lexpad has its own set of variables, unshared with anything) | 17:27 | ||
pmurias | is there anything in the spec which mentions that case? | ||
17:28
risou_ joined
|
|||
sorear | I think there is some stuff but it's very handwavey | 17:28 | |
pmurias | shouldn't that set the default value? | ||
like i vaguely remember BEGIN did in kp6? | 17:29 | ||
TimToady --> dentist & # back in an hour or so | |||
sorear | That's what I used to think, but it turned out to be 1. not very useful 2. a MAJOR pain to implement | ||
pmurias | sorear: does accessing simple vars defined in the setting work? | 17:30 | |
17:30
risou left
|
|||
sorear | Yes | 17:30 | |
RUN_ONCE subs like the setting's mainline do not have a distinct static pad | 17:31 | ||
niecza: my $x; say $x; INIT $x = 42; | |||
p6eval | niecza v3-49-gd426c3d: OUTPUT«42» | ||
sorear | That works because there is really only one $x | ||
It's not like $x is being set as a default and then copied | 17:32 | ||
niecza: sub foo() { my $x; say $x; INIT $x = 42; }; foo # in particular, this doesn't work | |||
p6eval | niecza v3-49-gd426c3d: OUTPUT«Any()» | ||
pmurias | i understand how that works, but that seems very crazy | ||
masak | same here. | ||
I'd want that to work, I think. | 17:33 | ||
but maybe I don't understand INIT. | |||
jnthn | I think it should work, though Rakudo currently gets it rong. | ||
17:34
noganex_ joined
17:35
noganex left
|
|||
pmurias | sorear: if i have sub foo {my $counter=0;sub {say ++$counter}} | 17:35 | |
when in NAM terms is the inner sub cloned? | 17:36 | ||
sorear | pmurias: at the beginning of foo, before nam ops are run, all variables are initialized | 17:38 | |
17:38
risou joined
|
|||
sorear | anon_0 is a 'sub' var, so to initialize it, it gets a cloned sub | 17:38 | |
masak | how does a sub look in Niecza? what does it have apart from a signature and a block? | 17:39 | |
dalek | psi: 4264822 | masak++ | lib/Yapsi.pm: [Yapsi] fix binding var detection In generating the SIC for a binding statement, detecting whether the rhs was a variable used to be tricky business. With FUTURE it's dead simple. This accidentally makes nested subroutine declarations work. |
||
sorear | masak: a Hash of lexicals, a name, an outer pointer, a bunch of ad-hoc flags | 17:41 | |
17:41
risou_ left
|
|||
sorear | for generous values of "flags" | 17:41 | |
for instance, there's $!augment_hack | 17:42 | ||
when you have augment class Foo { ... }, the augment block is a sub; $!augment_hack holds a list of the new methods to be added, and the class to add them to | |||
masak | sorear: oh, so a sub is its own lexpad, in some sense? | 17:43 | |
17:43
_buno_ left
|
|||
sorear | masak: more of a ... template | 17:43 | |
masak | ok. | ||
tadzik | masak: what was that Czajkowski you played after Overture 1812? | ||
masak | tadzik: I think it was Dvorak's 9th. | 17:44 | |
sorear | masak: StaticSub.lexicals holds names and type information | ||
masak | tadzik: "New World" | ||
17:44
silug_ left
|
|||
masak | sorear: is there a distinction between blocks and subs? | 17:44 | |
tadzik | oh, alright | 17:45 | |
pmurias | sorear: do we need all that flags? | ||
sorear | masak: the only distinction between {...} and sub {...} in niecza right now is the "handles &return" bit | 17:46 | |
masak | I'm considering having a 'relinquish' opcode in SIC, that ends a normal program, but keeps the runtime context around for the REPL, allowing a new block to be injected in the lexical scope of the last line. | ||
sorear: that makes sense. am asking because I'm about to implement just that. | |||
pmurias | bjj& | 17:47 | |
masak | so a sub is a block with a "handles &return" bit? | ||
17:47
pmurias left
|
|||
sorear | yes | 17:47 | |
eventually, I need to also have class="Sub" | 17:48 | ||
rakudo: say ({1}).WHAT; say (sub {1}).WHAT | |||
p6eval | rakudo bd134e: OUTPUT«Block()Sub()» | ||
sorear | this is specced behavior | ||
niecza: say ({1}).WHAT; say (sub {1}).WHAT | |||
p6eval | niecza v3-49-gd426c3d: OUTPUT«Sub()Sub()» | 17:49 | |
masak | but mostly for type reasons, right? the current model seems quite adequate apart from that. | ||
sorear | this is not :/ | ||
yes | |||
right now niecza has only two code-object classes | |||
Sub and Regex | |||
they have very different implementations of ACCEPTS | |||
17:50
porter235 joined
|
|||
sorear | std: package A {}; { my package A::B { sub foo {} } }; A::B::foo; | 17:52 | |
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::B::foo' used at line 1Check failedFAILED 00:01 119m» | 17:53 | |
sorear | std: package A {}; { package A::B { sub foo {} } }; A::B::foo; | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::B::foo' used at line 1Check failedFAILED 00:01 118m» | ||
sorear | wtf | ||
masak | o.O | ||
17:53
benabik left
|
|||
sorear | I was trying to prove that STD's package model was SUBTLY broken | 17:54 | |
17:54
cdarroch joined,
cdarroch left,
cdarroch joined,
porter235 left
|
|||
sorear | oh, I see. | 17:54 | |
std: package A { sub foo {} }; { A::foo } | 17:55 | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::foo' used at line 1Check failedFAILED 00:01 118m» | ||
sorear | std: package A { sub foo {} }; A::foo | 17:56 | |
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::foo' used at line 1Check failedFAILED 00:01 118m» | ||
sorear | ... or not. | ||
OH | |||
jnthn | our sub foo :) | ||
sorear | std: package A {}; { my package A::B { our sub foo {} } }; A::B::foo; | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::B::foo' used at line 1Check failedFAILED 00:01 119m» | ||
sorear | std: package A {}; { package A::B { our sub foo {} } }; A::B::foo; | ||
p6eval | std 4608239: OUTPUT«ok 00:01 119m» | ||
masak | that's fine. | ||
package is 'our' by default. | 17:57 | ||
sorear | std: package A { sub foo {} }; { A::foo } | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::foo' used at line 1Check failedFAILED 00:01 118m» | ||
sorear | std: package A { our sub foo {} }; { A::foo } | ||
p6eval | std 4608239: OUTPUT«ok 00:01 119m» | ||
sorear | std: package A { our sub foo {} }; { my package A::B { }; A::foo } | ||
p6eval | std 4608239: OUTPUT«ok 00:01 119m» | ||
17:57
c9s joined,
c9s left
17:58
dorlamm left
|
|||
sorear | I don't get how that one works. | 17:58 | |
masak | the last one? | ||
sorear | yes | ||
masak | seems to just be a variant on the second-last one. | ||
what do you consider odd about it? | 17:59 | ||
sorear | masak: STD.pm6 interprets my package A::B {} as my package A {...}; package A::B {} | ||
the interpretation should be shadowing A | |||
masak | evidence seems to go against the claim that it interprets it that way. are you sure? | 18:00 | |
sorear | yes, I'm looking at the source | ||
masak | I'm looking at the output :P | ||
it seems to be doing the right thing, as opposed to what you said. | 18:01 | ||
18:02
justatheory left
18:05
jaldhar left
|
|||
sorear | well I need to know _how_ it works | 18:05 | |
in order to support things like "Yapsi::Runtime" | |||
18:06
jaldhar joined
|
|||
sorear | std: package A { our sub foo {} }; { my package A::B { }; BEGIN { A::foo } } | 18:08 | |
p6eval | std 4608239: OUTPUT«===SORRY!===Undeclared name: 'A::foo' used at line 1Check failedFAILED 00:01 120m» | ||
moritz_ | std: package A { our sub foo {} }; { my package A::B { }; A::foo | ||
p6eval | std 4608239: OUTPUT«===SORRY!===Unable to parse block at /tmp/xbFvCkyHXg line 1:------> package A { our sub foo {} }; ⏏{ my package A::B { }; A::fooCouldn't find final '}'; gave up at /tmp/xbFvCkyHXg line 1 (EOF):------> foo {} }; { my package A::B { | ||
..}; A… | |||
moritz_ | std: package A { our sub foo {} }; { my package A::B { } }; A::foo | 18:09 | |
p6eval | std 4608239: OUTPUT«ok 00:01 119m» | ||
sorear | My earlier version worked entirely by accident - A::foo is allowed to be postdeclared, y'see, so the check was deferred until the end of the program, at which point the inner block was closed and the top-level A:: was visible again | ||
Adding BEGIN makes the check immediate | |||
masak | nod. | 18:10 | |
18:14
justatheory joined
18:15
ruoso joined
|
|||
rdesfo | is try.rakudo.org/ is being maintained? | 18:17 | |
moritz_ | rdesfo: ocasionally | 18:18 | |
rdesfo | moritz_: chapter (3 .. 14) don't work | 18:19 | |
moritz_ | rdesfo: I've seen the github issue, thanks | ||
rdesfo | moritz_:ok, thanks | 18:20 | |
18:20
ruoso left,
ruoso joined
18:22
plobsing left
|
|||
dalek | Heuristic branch merge: pushed 42 commits to nqp/ctmo by jnthn | 18:23 | |
sorear | masak: I don't beleive that my class A::B {} fundamentally makes sense. | ||
masak | sorear: please go on. | ||
moritz_ neither | |||
'my' means "lexical" | 18:24 | ||
PerlJam | sorear: I agree too | ||
moritz_ | and "A::B" means "store stuff in the A:: namespace | ||
sorear | moritz_ is explaining it better than the stuff in my minibuffer | ||
masak | :) | 18:25 | |
well, it could mean "store the B package in the A:: namespace, such that it can't be seen from the outside", no? | 18:26 | ||
PerlJam | masak: I don't understand that. | ||
masak | I mean, that would still be an action. not a sensible action, perhaps, but it's logically possible to do. | ||
PerlJam | It could mean "make a lexical B and a dynamic B that lives in the A:: namespace" | ||
masak | oh wait. yes, I see it now. | ||
A:: is an 'our' namespace, so to speak. | 18:27 | ||
so saying 'my' is at odds with that. | |||
PerlJam | right | ||
masak | I'm in phase now. | ||
PerlJam | And if it meant what I just said, that's confusing. | ||
masak | what's a "dynamic B"? | 18:28 | |
PerlJam | masak: sorry, that's more perl-5-speak than anything. A B that lives in a package. "our B" | 18:29 | |
masak | ah, p5:dynamic means 'our'. :) | ||
to me, 'dynamic' means something very much like 'contextual'. | |||
store & | 18:30 | ||
PerlJam | This is one of those areas where we can afford to be conservative and disallow the combination "my" + "::" initially, until we figure out something sane for it to mean (or just decide that it's always insane) | 18:32 | |
IMHO anyway | |||
18:32
risou left
|
|||
sorear | ok. y'all have convinced me. | 18:37 | |
18:39
alester joined,
shi joined
18:44
ymasory joined
|
|||
PerlJam | sorear: of what have we convinced you? :) | 18:45 | |
sorear | PerlJam: "we can afford to be conservative" | 18:47 | |
PerlJam | sorear: are you going to patch STD ? | ||
18:47
Su-Shee joined
|
|||
Su-Shee | good evening all. | 18:47 | |
PerlJam | Su-Shee: no UML here! | 18:48 | |
sorear | PerlJam: not now. | ||
PerlJam | :-) | ||
Su-Shee | PerlJam: I've just realized that I've forgotten to join ;) | ||
18:57
plobsing joined
|
|||
masak | Su-Shee: gd'evening! | 19:00 | |
jnthn | o/ Su-Shee | 19:02 | |
sorear | hello Su-Shee | 19:03 | |
19:07
GinoMan joined
19:08
silug joined
|
|||
masak | ah, Tchaikovsky, old friend. you write very pleasant hacking music. | 19:12 | |
dalek | ecza: 8f6f087 | sorear++ | / (3 files): Allow class declarations with :: in the name |
19:13 | |
sorear | whee. | ||
masak | sorear++ | 19:14 | |
19:15
spq joined,
bacek joined
19:21
fhelmberger left
19:25
fhelmberger joined,
fhelmberger left
|
|||
tadzik | o/ | 19:27 | |
masak | \o | ||
19:27
plobsing left
|
|||
sorear | /o | 19:27 | |
dalek | p/ctmo: 1516bd2 | jonathan++ | / (2 files): Add a Serialization Context PMC. Just bare bones for now. |
19:28 | |
p/ctmo: 89c34b4 | jonathan++ | src/ (6 files): Bring the work on compile time meta-object support so far in line with my latest thinking on how stuff will work. Quite a few little changes. |
|||
p/ctmo: 10e90bd | jonathan++ | src/ (2 files): Put in place code to do fixup or deserialization. No actions to actually do yet, but that's the infrastructure. Back out setting up the meta-objects in the deserialization just yet - not quite ready for it. |
|||
moritz_ | masak: I've tried an optimized version for .comb | 19:30 | |
8.10s for my benchmark, instead of 8.26 | |||
masak | huh. | 19:31 | |
jnthn | :S | ||
That's...just plain odd. | |||
masak | maybe just reject the RT ticket, then? | ||
moritz_ | maybe my multi wasn't called | ||
masak | or investigate more? | ||
moritz_ tries something elese | |||
jnthn | Yeah, check it was called... | ||
Or maybe gather/take is horribly costly or something... | 19:32 | ||
masak | wouldn't surprise me. | ||
19:32
isBEKaml joined
|
|||
sorear | niecza: my $s = "a"; $s ~= $s for ^20; say $s.chars; say $s.comb.elems; | 19:33 | |
moritz_ | I've done it with map | ||
p6eval | niecza v3-49-gd426c3d: OUTPUT«(timeout)» | ||
sorear | niecza: my $s = "a"; $s ~= $s for ^15; say $s.chars; say $s.comb.elems; | ||
p6eval | niecza v3-49-gd426c3d: OUTPUT«3276832768» | ||
moritz_ | and compared to a plain (1..$count).map: { $_ * $_ } | ||
that took about 1.3s | 19:34 | ||
masak | odd. | ||
sorear | moritz_: Tene suggested getting rid of the p6eval linguistic sandbox and relying on SELinux stuff isntead | ||
masak | lots of string allocations, 'phaps? | ||
sorear | niecza: my $s = "a"; $s ~= $s for ^18; say $s.chars; say $s.comb.elems; | ||
moritz_ | hm. | ||
$ time ./perl6 -e 'my $s = ("abcefg" x 400); for ^(6*400) { pir::substr($s, $_, 1) }' | |||
p6eval | niecza v3-49-gd426c3d: OUTPUT«262144262144» | ||
moritz_ | real 0m1.725s | ||
so, should be doable in ~2s | |||
sorear | niecza: my $s = "a"; $s ~= $s for ^20; say $s.chars; say $s.comb.elems; | 19:35 | |
19:35
plobsing joined
|
|||
p6eval | niecza v3-49-gd426c3d: OUTPUT«(timeout)» | 19:35 | |
sorear | niecza: my $s = "a"; $s ~= $s for ^19; say $s.chars; say $s.comb.elems; | ||
p6eval | niecza v3-49-gd426c3d: OUTPUT«(timeout)» | ||
flussence | rakudo: say [+] 1..19 | ||
p6eval | rakudo bd134e: OUTPUT«190» | ||
19:35
noganex_ left
|
|||
flussence | niecza: my $s = "a"; $s ~= $s for ^2; say $s.chars # ? | 19:36 | |
p6eval | niecza v3-49-gd426c3d: OUTPUT«4» | ||
flussence | huh. | ||
rakudo: my $s = "a"; $s ~= $s for ^200; say $s.chars | 19:37 | ||
p6eval | rakudo bd134e: OUTPUT«Failed allocation of 536870976 bytesParrot VM: PANIC: Out of mem!C file src/gc/alloc_memory.c, line 87Parrot file (not available), line (not available)We highly suggest you notify the Parrot team if you have not been working onParrot. Use parrotbug (located in parrot's | ||
..root … | |||
flussence | whoops, didn't mean to type 00 | ||
sorear | flussence: p6eval doesn't have 2^200 bytes of RAM | ||
isBEKaml | since when did parrot get that nice OOM error message? (sorry, been out so long. :/) | 19:38 | |
flussence | rakudo: my $s = "a"; $s ~= $s for ^20; say $s.chars | 19:39 | |
p6eval | rakudo bd134e: OUTPUT«1048576» | ||
moritz_ | isBEKaml: it's been quite a while | ||
19:39
noganex joined
|
|||
isBEKaml | moritz_: I see things have grown compartcompoundomentally. :) | 19:40 | |
19:40
plobsing left,
plobsing joined
19:41
ruoso left,
ruoso joined
|
|||
isBEKaml | rakudo: my $s="s"; $s.chars.say; | 19:41 | |
p6eval | rakudo bd134e: OUTPUT«1» | ||
sorear | woah, 29 seconds to compile NieczaActions... I wodner what I did | 19:42 | |
19:43
colomon joined
|
|||
[Coke] | is that high or low? | 19:44 | |
sorear | rather low | 19:45 | |
colomon: hi! | |||
colomon | \o | ||
isBEKaml | rakudo: my $s = "s"; $s ~= $s for ^2; $s.chars.say; | ||
p6eval | rakudo bd134e: OUTPUT«4» | ||
sorear | colomon: I have two suggestions for your benchmarking | 19:46 | |
flussence | running that ^20 line (with the comb part) locally... niecza did it in 24 seconds but took 1.5GB RAM, rakudo's still running but is stable at ~170MB | ||
sorear | 1. It would be helpful to use the same vertical scale for all of the graphs, so I can see at a glance which have changed a lot and which have changed a little | 19:47 | |
2. A logarithmic vertical scale would make excursions near 0 look niecer | |||
nicer | |||
flussence | (hm, rakudo's up to 220MB RAM now...) | 19:49 | |
19:50
benabik joined,
colomon left
|
|||
sorear | flussence: irony. | 19:50 | |
moritz_ | oh, the optimized version is never called | ||
19:50
porter235 joined
|
|||
moritz_ | rakudo: class A { method f($) { say 1 }; method f() { say 2 } }; A.new.f() | 19:51 | |
p6eval | rakudo bd134e: OUTPUT«2» | ||
moritz_ | rakudo: class A { method f($?) { say 1 }; method f() { say 2 } }; A.new.f() | ||
p6eval | rakudo bd134e: OUTPUT«===SORRY!===In signature parameter, '$?', it is illegal to use '?' twigil at line 22, near ") { say 1 "» | ||
moritz_ | rakudo: class A { method f($a?) { say 1 }; method f() { say 2 } }; A.new.f() | ||
p6eval | rakudo bd134e: OUTPUT«2» | ||
moritz_ | rakudo: class A { method f($a = 2, $b = 5) { say 1 }; method f() { say 2 } }; A.new.f() | 19:52 | |
p6eval | rakudo bd134e: OUTPUT«2» | ||
moritz_ | rakudo: class A { method f(Int $a = 2, $b = 5) { say 1 }; method f() { say 2 } }; A.new.f() | 19:53 | |
flussence | stranger still is that rakudo seems to only be using ~85% CPU... | ||
p6eval | rakudo bd134e: OUTPUT«2» | ||
19:53
literal_ joined
|
|||
sorear | hey, tadzik noticed that sorting a list of 1000 numbers that are already sorted is slwo | 19:53 | |
sorear points at Parrot's naive quicksort and sniggers | 19:54 | ||
masak | sorear: why? | ||
isBEKaml | that's sort of expected, isn't it - well, depending on the algorithm actually used. :? | ||
moritz_ | if it uses mergesort, the runtime will be nearly independet of the input ordering | ||
19:54
impious joined
|
|||
moritz_ | isBEKaml: *sort* of :-) | 19:55 | |
sorear | masak: it... doesn't | ||
moritz_: | |||
isBEKaml | good * sort! :-) | ||
masak | "quicksort: it doesn't" | ||
it doesn't sort, or it doesn't sort quick? I'm guessing the latter. | |||
sorear | (I can't think of any legitimate reason to use quicksort in the 21st century, except maybe as a case study of cargo cult programming) | 19:56 | |
masak | because the former would be really catastrophic. | ||
moritz_ | sorear: it's cache friendlier than mergesort, people say | ||
isBEKaml | masak: he says that it's sorting an _already_ sorted list. that's slow. | ||
sorear | masak: several well-known C libraries have quick sort routines that segfault if the comparison callback fails to be transitive | ||
isBEKaml | masak: and, hi! :) | ||
moritz_ | (but I don't think it's a *good* reason) | ||
masak | isBEKaml! \o/ | 19:57 | |
sorear: serves them right, I say :P | |||
plobsing | sorear: just because qsort() is implemented poorly on some platforms doesn't mean one should not use the algorithm it implements. | ||
isBEKaml | sorear: cargo cult programming! *snickers* blame it all on Tony! xD | 19:59 | |
masak: things how goes? =) | |||
masak | isBEKaml: things wonderfully go. :) | 20:00 | |
isBEKaml: Yapsi has named subs! | |||
isBEKaml: we're doing a hackathon! | |||
isBEKaml: we participated NLPW! | |||
dalek | ecza: ade14b1 | sorear++ | / (4 files): Fix A::B installing B alias, setting breakage |
||
isBEKaml | masak: We, we moar got? | ||
masak | mberends, jnthn | ||
tadzik was here during the weekend. | 20:01 | ||
isBEKaml | mberends, ah. shoulda guessed from NL. :) | ||
tadzik | sorear: that might be just the fact that even a .sort call is slow :) | ||
sorear | isBEKaml: niecza's march goal is to run yapsi | ||
tadzik | and fwiw actually jnthn++ found that | ||
isBEKaml | hugme: hug everyone! | ||
hugme hugs everyone! | |||
moritz_ says multi dispatch wtf | 20:02 | ||
if I add a multi method comb() to class Cool, it's not called | |||
isBEKaml | sorear: that's wonderful. are you actually going to run sic bytecode ? I'd love to see that against CLR. :) | ||
moritz_ | if I add it to class Str, it hides other multis | 20:03 | |
20:04
rdesfo left
|
|||
sorear | isBEKaml: no, I was planning to run Yapsi.pm | 20:04 | |
jnthn | moritz_: The second isn't surprising. | ||
moritz_: But the first is...but it may be that the higher arity existing candidate wins or something... | |||
isBEKaml | sorear: nice. looking forward to it! | ||
moritz_ | the other is | 20:05 | |
multi method comb(Regex $matcher = /./, $limit = *, :$match) | |||
sorear | isBEKaml: eventually I'd like to make it 100% masak-compatible | 20:06 | |
moritz_ | rakudo: class A { multi method comb(Regex $matcher = /./, $limit = *, :$match) { 1 }; multi method comb() { 2 } }; say A.new.comb | ||
p6eval | rakudo bd134e: OUTPUT«1» | ||
isBEKaml | sorear++ (masakking everything!) | ||
moritz_ | is that... expected? | ||
sorear | moritz_: If you have a separate multi to handle to no-arg case, making $matcher optional-with-default is probably part of the problem | ||
jnthn | I'm guessing the higher arity one sorts higher. | ||
masak | what? why? | ||
jnthn | Probably because you asked for it to when it suited that way around :P | 20:07 | |
isBEKaml | masak: march plan of attack? (I don't know, I might disappear off to the woods again. :/ ) | ||
masak | jnthn: hey! :P | ||
moritz_ | sorear: if I don't provide the default, I make the case where a :limit is supplied impossible, no? | ||
jnthn | The whole area is weird... | ||
masak | jnthn: I remember asking for another thing. | ||
sorear | masak: what? november, druid, yapsi, ... | ||
masak | jnthn: it was the presence/absence of a slurpy array. | ||
jnthn | moritz_: Note the :limit will apply to the second one too... | ||
masak | jnthn: that one should prefer the smaller-arity one. | ||
jnthn | Since there's a default *% | 20:08 | |
isBEKaml thinks things are getting weird here about rapidly losing context. is it just me? :) | |||
sorear | IMHO Rakudo should be giving an ambiguous dispatch error | ||
jnthn | sorear: Doubt it. | ||
masak | sorear: november is getting a bit old, but all those are fine. | ||
sorear | "the wiki engine with more grey hair" | 20:09 | |
tadzik | mberends: has anything new happen about the Sekritt Project? | ||
masak | tadzik: I'm doing the last bits on NP now. | ||
tadzik: as it turns out P=NP, actually :P | |||
jnthn | oh, turns out it doesn't seem to care much for arity in these cases... | ||
dukeleto | i just submitted The Perl Foundation's app to participate in Google Summer of Code 2011. Anybody have project ideas? | ||
moritz_ | dukeleto: is it a joint application of TPF and PaFo? | 20:10 | |
dukeleto | moritz_: nope, Parrot Foundation and TPF are seperate orgs this year | ||
tadzik | masak: oh I so want to see that patch :) | ||
jnthn | masak: The slurpy bit is there, though... | ||
masak | jnthn: yes, but it should *prefer* the shorter one, no? | 20:11 | |
dukeleto | moritz_: it became too crazy to have two umbrella organizations under the same roof | ||
isBEKaml | "The wrinkled wiki" :P | ||
jnthn | masak: Perhaps so. | ||
masak: We could try it and see what tests break... | |||
:) | |||
masak | \o/ | ||
mberends | tadzik: tuit fail, but tuit recovery expected tonight/tomorrow :) | ||
dukeleto | moritz_: Rakudo is kind of on the boundary layer. I guess it can choose to be part of whichever org it wants :) | ||
isBEKaml | wait, should that be "wrinkli" ? :D | ||
masak | I distinctly remember the discussion during YAPC::EU 2009. | 20:12 | |
"The lack of an argument could be considered narrower than a slurpy array." -- Damian | |||
dukeleto | moritz_: i assume it will be TPF | ||
moritz_: but that is up to Rakudo-folk to decide | |||
jnthn | hm | ||
dukeleto has to head to the airport in a few | |||
moritz_ | dukeleto: I'll think about project ideas, thanks | ||
dukeleto | moritz_: awesome! | ||
This page is sorely in need of updating and a project ideas should be added to the bottom: www.socialtext.net/perl5/gsoc | 20:13 | ||
20:15
GinoMan left
20:18
porter235 left
|
|||
[Coke] | I imagine rakudo could end up with project under both orgs this year. | 20:23 | |
20:24
stkowski joined
|
|||
isBEKaml | www.reddit.com/r/perl/comments/fxbb...at/c1jfygb | 20:29 | |
lol, hug HIBOU. | |||
20:33
fisted left
|
|||
isBEKaml | I feel sorry for that fella. | 20:33 | |
20:34
Holy_Cow joined
20:38
ponbiki joined
20:46
isBEKaml left
20:50
plobsing left,
tyatpi_ joined
20:53
benabik left
20:55
fisted joined
21:00
plobsing joined
21:03
am0c joined
21:05
tyatpi_ left
21:10
dual left
21:13
plainhao left
21:14
dual joined
21:15
gdey_ joined,
gdey_ left,
gdey_ joined
21:18
tyatpi_ joined
|
|||
Tene | jnthn: I ended up having a lot of trouble getting the class hierarchy organized properly; I need to take a look at that again today after work. | 21:20 | |
Trying to get classes to be instances of RubyClass, and RubyClass to be an instance of RubyObject, I kept ending up with circular inheritance. There's something I'm doing wrong there. | 21:21 | ||
21:22
metaxy joined
|
|||
Tene | I also wasn't getting things organized properly to have class methods be separate from instance methods; I suspect those are related. | 21:22 | |
21:23
gdey_ left
21:24
TheMartianGeek joined
|
|||
jnthn | Tene: May need to have two separate meta-methods, an add_method and add_class_method or some such. | 21:27 | |
Tene | Maybe. | ||
I think I'm just not clear on what repr_type_object_for does exactly; I need to read through the code around that. | 21:28 | ||
Ruby doesn't use prototype OO, so instances of a class aren't the same type as the class itself. | |||
so classes need to be instances of class, but not inherit from class. | 21:29 | ||
I don't have a specific question here, as I'm not working on it right now, but I thought you might be interested in hearing the difficulties I ran into while trying to use it, yes? | 21:30 | ||
21:33
ruoso left
21:34
ruoso joined
|
|||
flussence | oh, that rakudo oneliner finally finished | 21:37 | |
6161.64user 1.86system 1:46:12elapsed 96%CPU (0avgtext+0avgdata 4096992maxresident)k | 21:38 | ||
21:39
f00li5h joined
21:43
cjk101010 joined
|
|||
masak | moritz_: when I do 'perl6 -h' what is it that includes ll-backtrace among the options listed? | 21:45 | |
tadzik | a-ha, I see what you did there? | 21:46 | |
:) | |||
masak | :) | ||
tadzik: it's working locally, just refactoring a bit and making sure the docs/help system follow along nicely. | 21:47 | ||
oh. seems the answer is "it's in compilers/pct/src/PCT/HLLCompiler.pir" | 21:49 | ||
21:50
ruoso left
21:51
TheMartianGeek left
21:52
lichtkind joined
|
|||
moritz_ | masak: right | 21:53 | |
masak: don't invest much work on it, the command line parsing works differently in the new nqp | |||
masak | *nod* | ||
I'll just submit a rakudobug so we don't forget. | |||
21:55
spq left
22:00
metaxy left
|
|||
lichtkind | cheers | 22:01 | |
22:01
drakej joined,
drakej left
|
|||
lichtkind | ouch | 22:01 | |
masak | cheers/ouch, lichtkind. | 22:03 | |
lichtkind | masak :) the ouch was only because my conversation with the nickserver :) | 22:04 | |
22:04
kaare_ left,
cjk101010 left
|
|||
masak | lichtkind: is the nickserver being sarcastic again? | 22:04 | |
mberends | .oO( ouch is lichtkindś password? ) |
||
22:05
Holy_Cow left
|
|||
lichtkind | masak: he just a faithfull servant the real ouch was because i could not remember my password the first 2 times | 22:06 | |
dalek | kudo: 7fb6341 | masak++ | / (3 files): added -n and -p options The -n option pretends that instead of $code, your program is really "for lines() { $code }". The -p option pretends "for lines() { $code; say $_ }". The substitutions in question are done at the PAST level in Perl6::Actions. |
||
masak | lichtkind: that's because you don't come and visit us at #perl6 enough :) | ||
mberends | masak++ # making Rakudo -n and -p complete | 22:08 | |
masak | \o/ | ||
22:08
gdey_ joined
|
|||
masak | interesting post about "core Perl 5": blogs.perl.org/users/brian_d_foy/20...l-516.html | 22:08 | |
jnthn | masak: Was it -n -p hard? | ||
masak | jnthn: the hardest part was waiting for Rakudo to compile. :) | 22:09 | |
tadzik | yay :) | ||
masak | after the FUTURE, I feel very confident with handling the PAST. | ||
lichtkind | cheers jnthn | ||
tadzik | wow, that was actually quite easy | ||
or rather: simple | 22:10 | ||
jnthn | ahoj, lichtkind | ||
22:10
gdey_ left,
allbery_b left,
simcop2387 left,
bhwu left,
f00li5h left
|
|||
masak | tadzik: yes. the implementation mostly consisted of a bunch of magpie copy-pasting from other places :) | 22:10 | |
22:10
silug left,
saaki left,
silug joined,
allbery_b joined
|
|||
masak | and just a tiny bit actual understanding. | 22:10 | |
tadzik | that opens a room for lotsa LHF | 22:11 | |
22:11
gdey_ joined
|
|||
masak | oh? | 22:11 | |
lichtkind | masak: true but i guess im coming back a bit | 22:12 | |
tadzik | masak: like autosplit | 22:13 | |
or -MDevel::Trace or so! | |||
22:13
coldhead joined,
porter235 joined,
simcop2387 joined
22:15
shi left
22:18
porter235 left
|
|||
masak | maybe in the new nqp, we can also fix the fact that ^D in the REPL doesn't print a final newline before exiting :) | 22:22 | |
jnthn | If anybody knows what fixing that involves probably, yes :) | 22:23 | |
tadzik | oh, it just needs a "say;" somewhere :) | ||
masak | std: say; | 22:24 | |
p6eval | std 4608239: OUTPUT«Potential difficulties: Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/qa1hjPxRwh line 1:------> say⏏;ok 00:01 117m» | ||
masak | std: say ''; | ||
p6eval | std 4608239: OUTPUT«ok 00:01 118m» | ||
masak | tadzik: modulo that, yes. | ||
tadzik | oh, I thought I use say; in panda | 22:25 | |
masak | please avoid using 'say;' | ||
tadzik | which, by the way, deserves a blag toast | ||
masak | it works in Rakudo currently, but it shouldn't. | ||
oh definitely; do blog about Panda. | 22:26 | ||
masak goes to retire pun | |||
22:26
f00li5h joined
|
|||
tadzik | oh, and we still didn't talk about the differences between Panda and Pls | 22:26 | |
masak | right. | 22:27 | |
tadzik | so maybe I'll just hilight them in the toast, so you could respond to that | 22:28 | |
masak | do what makes sense/feels right for now. | 22:29 | |
tadzik | I feel like sleeping :) | ||
masak | we can discuss Panda and Pls whenever it's convenient. | ||
me too :) | |||
tadzik | and I have to wake up at 6 tomorrow to attend a Java lecture :( | 22:30 | |
jnthn | Ouch | 22:31 | |
sjohnson | doh | 22:32 | |
tadzik | yeah. But it's still probably the most interesting classes I have | 22:34 | |
maybe besides Table Tennis | |||
masak | what sadist teaches Java at 6 in the morning? :P | ||
sjohnson: \o | |||
sjohnson | masak.pal() | ||
tadzik | at 8 :) But I have to wake up like 6.20 to get there | ||
oh, that reminds me that it's actually 8.30 | 22:35 | ||
sjohnson is doing a lot of perl5 coding today | |||
dalek | p/ctmo: 06a391d | jonathan++ | / (6 files): Get setting loading working from pre-compiled code. This was a tad twisted to do, but should work nicely now. |
||
22:36
f00li5h left
|
|||
masak | jnthn++ | 22:36 | |
masak goes to bed | |||
'night, zebras. | |||
22:36
masak left
22:38
natureboy joined
|
|||
jnthn | yes, sleep sounds like a good idea :) | 22:39 | |
22:41
fisted left
22:44
f00li5h joined
|
|||
sorear | hi #perl6 | 22:45 | |
22:47
natureboy left,
am0c left
22:49
fisted joined
|
|||
sjohnson | hello | 22:49 | |
22:50
risou joined
22:53
f00li5h left
22:57
cognominal left
23:01
hercynium left
23:05
f00li5h joined
23:08
ymasory left
23:12
Guest87704 joined
|
|||
lichtkind | gnight masak | jnthn | 23:17 | |
or better gnight masak & jnthn | 23:18 | ||
23:18
Rotwang left
23:19
plobsing left
23:20
takadonet1 joined
|
|||
sorear | hello lichtkind | 23:23 | |
23:35
colomon joined
23:36
f00li5h left
23:40
Guest87704 left
23:42
f00li5h joined
23:43
gdey_ left,
gdey_ joined
23:47
rgrau joined
23:51
f00li5h left
23:52
f00li5h joined
23:56
fisted_ joined
23:59
fisted left
|