»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:00
fgomez joined
00:02
colomon joined
|
|||
tadzik waves from Oslo | 00:05 | ||
colomon waves from Midland | |||
tadzik | The World of Perl 6 | 00:06 | |
perigrin | Midgard? | 00:11 | |
timotimo | tadzik: the release has been done by moritz and lizmat. how are you feeling? travel went fine? | 00:12 | |
colomon | perigrin: yes? | 00:15 | |
perigrin: but we hope to make it to Camelhalla some day. | 00:17 | ||
tadzik | timotimo: yeah, just long-ish :) | 00:22 | |
moritz++ lizmat++ | |||
timotimo | this release is giving me butterflies in my stomach :P | ||
tadzik | heheh | ||
sleep time, o/ | 00:23 | ||
colomon | \o | ||
timotimo | have a good rest & week, tadzik! | ||
00:48
yoleaux left
00:56
Vlavv left
00:58
aindilis left
01:08
Vlavv joined
01:17
kingbeast left
01:21
kingbeast joined
01:28
pecastro joined
01:30
pecastro_ left
01:36
FROGGS_ joined
01:40
FROGGS left
01:42
fridim__ joined
02:29
abnorman left
02:38
fridim__ left
02:52
nebuchadnezzar left,
nebuchadnezzar joined
02:53
abnorman joined
02:54
orafu left
02:56
orafu joined,
orafu left,
orafu joined
03:12
colomon left
03:44
fridim__ joined,
BenGoldberg left
03:51
skids joined
04:08
abnorman left
04:10
fridim__ left
04:12
Ayiko left,
Ayiko joined
04:23
stevan_ joined
04:28
Psyche^_ joined
|
|||
lizmat | good *, #perl6! | 04:32 | |
04:33
Psyche^ left
04:35
stevan_ left
04:36
stevan_ joined
04:40
cibs left
04:43
birdwindupbird joined
|
|||
sorear | o/ | 04:43 | |
04:46
cibs joined
05:00
SamuraiJack joined
05:01
lelf`` left
|
|||
moritz | \o | 05:30 | |
sorear | o/ | ||
moritz | lizmat++ # suddenly release manager | ||
lizmat | :-) | ||
sorear | lizmat++ | 05:31 | |
lizmat | I guess the next release will become more involved, as it would need to check both parakudo and jakudo | 05:35 | |
sorear | you didn't have to check jakudo for this one? | 05:36 | |
lizmat | not according to the release guide | 05:38 | |
and I followed that to the letter :-) | |||
fwiw, I wouldn't have been able to release otherwise, as I don't do jakudo just yet | 05:39 | ||
Why would a naive implementation of List.uniq: | 05:59 | ||
method uniq() { my %seen; grep { %seen.exists($_) ?? False !! %seen{$_} = 1 }, @.list;} | |||
work everywhere, except when being used in an "is_deeply", and thus fail the test | 06:00 | ||
gist.github.com/lizmat/6036979 | 06:02 | ||
sorear | lizmat: try uniq([], []) with both the current impl and your proposal | 06:05 | |
r: say uniq([], []).perl | |||
camelia | rakudo 099f0b: OUTPUT«([], []).list» | ||
sorear | the current impl uses WHICH, which provides === semantics | ||
your proposal uses a Str-keyed hash, which provides eq semantics | |||
lizmat | aha... | 06:06 | |
the plot thickens | |||
sorear | r: say uniq(1, "1").perl | ||
camelia | rakudo 099f0b: OUTPUT«(1, "1").list» | ||
sorear | r: say uniq(1, 1).perl | ||
camelia | rakudo 099f0b: OUTPUT«(1,).list» | ||
lizmat | r: say squish( [],[] ).perl # I assume squish() is then wrong here | 06:07 | |
camelia | rakudo 099f0b: OUTPUT«([], []).list» | ||
sorear would like to request that people "simplifying" code test for performance regressions if they don't already | |||
one big problem with rakudo is that people implement abstractions in terms of other abstractions | 06:08 | ||
I guess because it's a bit prettier to use grep instead of explicit loops | |||
but what winds up happening is that { foo => 1, bar => 2 } makes >50 function calls | |||
lizmat | FWIW, I *was* going to test performance | 06:09 | |
sorear | lizmat++ | 06:10 | |
JimmyZ | or method inlineing? | ||
sorear | eh. I haven't been able to contribute this week so I shouldn't be calling people out | 06:14 | |
JimmyZ | :P | ||
lizmat | sorear: I think you have enough cred with anybody involved here, to be allowed to do so :-) | 06:15 | |
JimmyZ | aye | ||
06:19
abnorman joined,
FROGGS_ left,
abnorman left
|
|||
sorear | JimmyZ: you should not assume that optimizations will reduce costs *to zero*. | 06:20 | |
JimmyZ | sorear: sorry, I didn't mean that | 06:22 | |
sorear | JimmyZ: i'm in a very moralistic mood right now. "sloppy kids making excuses, expecting other people to clean up after them" :( | ||
not a good state of mind for making rational arguments | |||
06:24
PacoAir joined
|
|||
JimmyZ | sorear: my english is not good enough, sometimes I can't follow the context | 06:24 | |
lizmat hopes someone will point it out to her if she's been sloppy | 06:29 | ||
we're all human and lazy :-) | 06:30 | ||
06:35
FROGGS_ joined
|
|||
lizmat | breakfast& | 06:35 | |
ingy | any guinea pigs around? | 06:43 | |
I have some new ingyware to pimp! | |||
ingy takes off his underware | |||
06:45
GlitchMr left
|
|||
ingy | lizmat: come back! | 06:47 | |
maybe sorear is ready to take a test drive :) | 06:48 | ||
06:48
GlitchMr joined
|
|||
ingy | sigh | 06:49 | |
06:49
domidumont joined
|
|||
FROGGS_ | morning o/ | 06:51 | |
06:52
FROGGS_ is now known as FROGGS,
kaleem joined
|
|||
JimmyZ | morning, FROGGS | 06:52 | |
sorear | o/ FROGGS | 06:54 | |
FROGGS | morning JimmyZ | ||
morning sorear | |||
:o) | |||
FROGGS gets coffee | |||
sorear sees ingy waving his underware and *runs* | |||
06:58
PacoAir left
06:59
domidumont left
|
|||
sorear | sleep& | 07:04 | |
JimmyZ | good night, sorear | ||
FROGGS | gnight sorear | 07:05 | |
lizmat | gnight soreare! | 07:07 | |
07:10
domidumont joined
07:12
rindolf joined
07:13
domidumont left
07:14
domidumont joined
|
|||
dalek | kudo/nom: 624ff76 | (Elizabeth Mattijsen)++ | src/core/List.pm: Rewrite of List.(uniq|squish) using map() For "my @a=1..100000; my @b= @a.(uniq|squish) the improvements were: uniq: CPU from 0m23.214s to 0m10.107s (aka 56% less CPU) squish: CPU from 0m10.911s to 0m7.790s (aka 28% less CPU) |
07:21 | |
moritz | \o/ | 07:22 | |
07:22
domidumont left,
domidumont joined
|
|||
moritz | lizmat: wouldn't .grep be a better choice than .map? | 07:23 | |
lizmat | grep is implemented in terms of map | ||
this removes one level of indirection | |||
squish() originally was just a grep | |||
moritz | lizmat: I'm mostly worried because the patch relies on the now-deprecated usage of Nil as empty list | 07:24 | |
lizmat: so by removing a level of indirection, you create more code to correct later on | |||
lizmat | I was wondering about that myself | ||
thing is, if I put () instead of Nil (which I tried), the tests currently fail | |||
FWIW, these changes are on my radar: as soon as $jnthn has implemented variable traits, specifically "is default" | 07:25 | ||
moritz | because they don't flatten out | ||
lizmat | oddly enough, in grep they *do* flatten out | 07:26 | |
moritz | r: say (1, 2, 3).map({()}).perl | ||
camelia | rakudo 099f0b: OUTPUT«((), (), ()).list» | ||
moritz | r: say (1, 2, 3).map({()}).list.perl | ||
camelia | rakudo 099f0b: OUTPUT«((), (), ()).list» | ||
moritz | r: say (1, 2, 3).map({()}).flat.perl | ||
camelia | rakudo 099f0b: OUTPUT«().list» | ||
moritz wonders if .grep itself flattens | |||
lizmat | r: say (1, 2, 3).grep({False}).list.perl | 07:27 | |
camelia | rakudo 099f0b: OUTPUT«().list» | ||
moritz | r: say ((1, 2), (3, 4)).grep({1}).perl | ||
camelia | rakudo 099f0b: OUTPUT«(1, 2, 3, 4).list» | ||
moritz | yes, grep flattens | ||
lizmat | but grep is just: self.map({ $_ if $_ ~~ $test }); | ||
moritz | r: my $c = 0; say ((1, 2), (3, 4)).grep({++$c; 1}).perl; say $c | ||
camelia | rakudo 099f0b: OUTPUT«(1, 2, 3, 4).list4» | ||
moritz | and it flattens before running too | ||
lizmat | map is: MapIter.new(self, $block, Bool::True).list | 07:28 | |
so are you saying grep shouldn't flatten? | 07:32 | ||
moritz | I have no idea | ||
there are a ton of list methods, and no clear guidance on which should flatten which shouldn't | |||
lizmat | S32/Containers:217 doesn't say anything about flattening | 07:33 | |
07:34
pochi joined
|
|||
lizmat | tadzik: synopsebot doesn't seem to handle S32 yet :) | 07:34 | |
so I guess I cannot map a value to nothing without flattening > | 07:35 | ||
? | |||
FROGGS | S32:217 | ||
synopsebot | Link: perlcabal.org/syn/S32.html#line_217 | ||
lizmat | 404 not found | ||
FROGGS | yeah | 07:36 | |
07:36
kingbeast left
|
|||
hoelzro | hmm | 07:38 | |
I just had a thought | |||
so Rakudo is adding all of these nice compiler warnings | |||
ex. "did you mean self?" | |||
maybe certain warnings could be enabled with certain switches? | |||
(on the other hand, that would make the code a nightmare) | 07:39 | ||
lizmat | I think that is on the "todo" :-) | ||
hoelzro | sweeet | ||
I thought of a feature that would come in handy for Java devs | |||
who type 'Int $foo = 7' or some such | |||
07:40
iSlug joined
07:41
kaleem left,
kaleem joined
|
|||
FROGGS | good point | 07:47 | |
hoelzro | FROGGS: don't implement it! | 07:48 | |
let me try first =) | |||
I submitted my first PR to the actual compiler last night | |||
FROGGS | hoelzro: I wont :o) | ||
I'm not going to steel anybodies idea :o) | 07:49 | ||
hoelzro | what other examples would case "Two terms in a row"? | 07:50 | |
moritz | r: 1 1 | ||
camelia | rakudo 099f0b: OUTPUT«===SORRY!===Two terms in a rowat /tmp/Zylc5Jngw2:1------> 1 ⏏1 expecting any of: postfix infix stopper infix or meta-infix statement end statement modifier statement modifie… | ||
hoelzro | ah ha | 07:51 | |
FROGGS | r: sub a { } sub b { } | ||
camelia | rakudo 099f0b: OUTPUT«===SORRY!===Two terms in a rowat /tmp/s5GMwt0msf:1------> sub a { } ⏏sub b { } expecting any of: statement list horizontal whitespace postfix infix stopper infix or meta-infix … | ||
moritz | hoelzro: lots of syntax errors are acutually "two terms in a row" under the hood | ||
hoelzro | hmm | ||
tadzik | lizmat: oh well, it's not a very smart bot :) | 07:52 | |
hoelzro | so I have to do some fancy detection for what I want | ||
tadzik | S999:123 | ||
synopsebot | Link: perlcabal.org/syn/S999.html#line_123 | ||
hoelzro | in typed_exception (Perl6::World), is it possible to see what terms are the "two terms in a row"? | 07:59 | |
moritz | r: try eval '1 1'; say $! | 08:01 | |
camelia | rakudo 099f0b: OUTPUT«===SORRY!===Two terms in a rowat eval_0:1------> 1 ⏏1 expecting any of: postfix infix stopper infix or meta-infix statement end statement modifier statement modifier loop»… | ||
moritz | r: try eval '1 1'; say $!.perl | ||
camelia | rakudo 099f0b: OUTPUT«X::Syntax::Confused.new(reason => "Two terms in a row", filename => "eval_0", line => 1, column => Any, modules => Array.new(), is-compile-time => 1, pre => "1 ", post => "1", highexpect => Array.new("postfix", "infix stopper", "infix or meta-infix", "statement end… | ||
08:04
iSlug left
|
|||
hoelzro | moritz++ # helping newbies | 08:04 | |
08:06
cbk left,
cbk joined
|
|||
lizmat | cycling for a few hours while the weather outside is still more or less bearable& | 08:08 | |
moritz occasionally takes the bycicle to work -- about 12km one way, that's quite tough if you're not used it :-) | 08:11 | ||
08:17
sciurius left
08:22
sciurius joined
08:27
iSlug joined
08:39
iSlug left
|
|||
jnthn | Morning, #perl6 | 08:42 | |
moritz | \o jnthn | 08:43 | |
FROGGS | hi jnthn | 08:44 | |
jnthn | lizmat++ # optimization | 08:45 | |
08:50
Rotwang joined
09:04
kaleem left
09:05
donaldh joined
|
|||
dalek | p: 644fc3a | (Donald Hunter)++ | src/vm/jvm/ (2 files): Added chdir with helpful error message for JVM |
09:10 | |
09:12
kaleem joined
09:35
daxim joined
09:39
rindolf left
09:49
tokuhirom joined
10:01
pmurias joined
|
|||
hoelzro | is there an nqp::dump or something similar? | 10:06 | |
I swear I found something like it yesterday... | |||
or maybe I'm thinking about nqp::say($/.dump()) | |||
10:10
dmol joined
|
|||
donaldh | QAST nodes have a dump method | 10:22 | |
hoelzro | ah ha | 10:24 | |
%opts isn't a 6MO? | |||
(in NQP land) | |||
moritz | no, a parrot hash | 10:25 | |
10:27
fhelmberger joined
|
|||
hoelzro | I see | 10:28 | |
does it support any sort of dump method =) | |||
10:29
tokuhirom left
10:34
tokuhirom joined
10:35
dmol left
10:39
colomon joined
|
|||
donaldh | jnthn: what toolchain do you use on Windows for jvm development? | 10:41 | |
moritz | nqp: my %h = hash(a => 1, b => 2); nqp::say(nqp::join(' ', nqp::keys(%h))) | 10:43 | |
camelia | nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near " hash(a =>"current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)» | ||
moritz | nqp: my %h := hash(a => 1, b => 2); nqp::say(nqp::join(' ', nqp::keys(%h))) | ||
camelia | nqp: OUTPUT«Error while compiling block : Error while compiling op say (source text: "nqp::say(nqp::join(' ', nqp::keys(%h)))"): Error while compiling op join (source text: "nqp::join(' ', nqp::keys(%h))"): Error while compiling op keys (source text: "nqp::keys(%h)"): No registered oper… | ||
10:43
dmol joined
|
|||
jnthn | donaldh: Originally was using Eclipse; these days just an editor and "make" :) | 10:44 | |
donaldh | which make? | 10:45 | |
jnthn | nmake | ||
(The one that comes with VS) | |||
donaldh | oh, compatibility is good. | ||
jnthn chuckles at using an MS build tool to compile NQP/Rakudo on JVM :) | 10:46 | ||
s/compile/build/ | |||
FROGGS | nqp: my %h := hash(a => 1, b => 2); nqp::say($_.key ~ ' => ' ~ $_.value) for %h | ||
camelia | nqp: OUTPUT«a => 1b => 2» | ||
donaldh | Just wanting to test on Windows and cygwin support would require some work. | ||
jnthn: which perl ? | 10:47 | ||
jnthn | ActivePerl | ||
FROGGS | cygwin? does really somebody use that except for debugging ports to cygwin? | ||
yeah, strawberryperl doesnt work well sadly | 10:48 | ||
jnthn | Well, I think some of the problem if building Rakudo/NQP on Parrot on Windows using the MS toolchain is that it takes Perl 5's configuration values. | ||
colomon | I used to use cygwin quite heavily, before I wised up and switched to OS X. | 10:49 | |
jnthn | And ActivePerl is built on the MS toolchain. | ||
donaldh | yeah, I use cygwin a lot in my $dayjob. Not as a target, just a unix tool environment. | ||
jnthn | MoarVM doesn't try to grab stuff out of Perl 5's configuration, so I'm hopeful we get less issues tehre. | ||
*there | |||
FROGGS | that is a sane choice | 10:50 | |
donaldh | The fun with JVM + Cygwin is that you get Unix path separators but the JVM insists on Windows conventions | 10:51 | |
so it's an ugly hybrid | 10:52 | ||
colomon | weird message in the smoker tester log: gist.github.com/colomon/6038314 | 10:54 | |
moritz | colomon: ignore it | 10:56 | |
the source is that we check out specific commits for nqp | 10:57 | ||
so we end up in a, whatitscalledagain, the state where you are not a branch | |||
so git warns that you might lose those commits, because they aren't in a local branch | 10:58 | ||
but they are in remote branches, so no need to worry | |||
11:03
dmol left
11:04
dmol joined
11:05
colomon left
11:08
colomon joined
|
|||
colomon | moritz++ | 11:08 | |
11:18
dmol left
|
|||
YoungFrog | "detached head", aka zombie mode :) | 11:25 | |
moritz | YoungFrog: thanks | 11:28 | |
11:31
fgomez left,
cognominal joined
|
|||
daxim | no, dullahan, not zombie | 11:31 | |
11:32
donaldh left
11:36
konundra left
11:40
tokuhirom left
11:42
tokuhirom joined
|
|||
jnthn | .oO( how the heck could a zombie eat brains without a head? ) |
11:43 | |
daxim | exactly! | 11:53 | |
12:13
skids left
|
|||
timotimo | no announcement on r/perl yet? let's bring some negativity in! | 12:17 | |
12:36
ajr joined
12:37
ajr is now known as Guest79582
12:38
Guest79582 is now known as ajr_
12:48
colomon left
12:49
colomon joined
12:53
colomon left,
konundra joined
|
|||
dalek | rlito: aff9748 | (Flavio S. Glock)++ | / (4 files): Perlito5 - integrate Perlito5/Grammar/Print.pm - indirect syntax for print |
12:55 | |
rlito: f461b57 | (Flavio S. Glock)++ | / (2 files): Perlito5 - recompile |
|||
timotimo | should L<#Some Heading> be the correct way to refer to a section in pod6? | 13:00 | |
ah, yes, it should | 13:01 | ||
timotimo patches Pod::To::HTML a little bit | |||
oh, huh. | 13:03 | ||
13:06
kaare__ joined,
kaare__ is now known as kaare_
13:09
colomon joined,
benabik left
13:10
benabik joined
13:13
tokuhirom left
|
|||
timotimo | S26 refers to "doc:perlpod"; should Pod::To::HTML gain knowledge of doc: links and generate a proper hyperlink or should the source text be given an actual http link? | 13:14 | |
ah, right. it specifies that. | 13:21 | ||
dalek | ecs: 82f60b2 | (Timo Paulssen)++ | S26-documentation.pod: fix an internal crosslink missing its # |
13:27 | |
timotimo | could someone be so kind and either upload my local rendering of S26 or generate a new one with the latest rakudo release and the latest Pod::To::HTML? | 13:28 | |
moritz | timotimo: I think I can upload it for you | 13:31 | |
timotimo: where is it? | |||
timotimo | i'll supply it to you momentarily | ||
t.h8.lv/S26-documentation.pod.html - here | 13:32 | ||
moritz | timotimo: perlcabal.org/syn/S26.html does that look updated to you? | 13:33 | |
timotimo | not yet | 13:34 | |
moritz | sadpanda :( | ||
timotimo | it should read "see Declarator blocks." instead of "see #Declarator blocks." | ||
oh wait | |||
it was just cached, now it's updated | |||
thanks! :) | |||
moritz | \o/ | ||
gladpanda! | |||
for the record, the file is /home/pugscode/syn/S26.html | 13:35 | ||
timotimo | gladpandos :) | ||
moritz | so anybody with feather1 root can updated it | ||
13:40
ajr joined
13:41
ajr_ left,
ajr is now known as Guest37601,
Guest37601 is now known as ajr_
|
|||
timotimo | i'm trying to figure out how to handle code blocks (and other blocks that may have virtual left margin in addition to their =begin and =end tags) that start with a line that has more whitespace in front than the rest (like the WHY/WHEREFORE diagram for example) | 13:44 | |
couldn't find anything in the spec for pod6 so far. | |||
maybe it warrants a spec ticket | |||
oh, hold on, you're allowed to specify a character to be used for the left margin, right? | 13:45 | ||
like a | or something | |||
that is _so_ unsupported :D | 13:46 | ||
13:48
cbk left
|
|||
timotimo | i'm thinking the pod parsing could/should be fundamentally simplified. the nesting should be more pronounced in the code. as in: when a block starts, it finds its own end and then parses its content while removing its beginning, end and especially all white and non-space to the left of it. | 13:49 | |
i wonder if that'll fly | |||
TimToady | hmm, smells of multi-pass parsing | 13:50 | |
timotimo | oh. yes, that it does | ||
timotimo drops the idea in the trash can | |||
TimToady the Bearer of Bad News when he wakes up :) | 13:51 | ||
timotimo | then again, tables kind of require multi-pass parsing; or at least multiple independent parsers at the same time (for formatting codes that span lines inside cells) | ||
well, i guess that can be emulated with single-pass parsing just fine | |||
TimToady | that tends to be a little more work, but worth it in the long run | 13:52 | |
timotimo | table cell parsing is magical to me anyway :) | 13:53 | |
TimToady | that being said, pod is...special...insofar as it's line oriented | ||
p5eval: say $] | 13:54 | ||
p5eval | TimToady: 5.0180001 | ||
colomon 's jakudo build is taking an extraordinarily long time... | |||
TimToady | .oO(oh, great, we'll just "fix" the p5 fractional version goof by adding more 0's in there...) |
13:56 | |
TimToady the Grump, waiting for the anti-depressive aspects of his coffee to kick in... | 13:58 | ||
diakopter | did Windows 3.11 really mean 3.1.1? | ||
TimToady | well, Perl 4 meant "we have a book now" | 13:59 | |
timotimo would still really like to know why in the world p6doc's htmlify now uses up so darn much RAM :( | 14:01 | ||
TimToady avoids making a pun on EWE gross. | |||
timotimo | maybe it's because for each single character in a pod string there's one match result? (that really struck me as an odd decision when i read the code) | 14:02 | |
but those ASTs and match objects should be discarded once the module is parsed, right? | |||
or do they live on in $=pod for some reason? | 14:03 | ||
TimToady | lovely word, "should" | ||
timotimo | "would be sad if something were to happen to it"? :) | ||
TimToady was thinking more as a linguist than as a mobster, but I suppose they aren't all that different... | 14:04 | ||
colomon | hmmm… so how can rakudo detect that an argument passed to it is a rakudo object and not something else? | 14:05 | |
timotimo | "a rakudo object"? | ||
maybe you mean something like "from the setting"? | 14:06 | ||
FROGGS | colomon: do you mean if it is an P6opaque? in contrast to a native int/str/num? | ||
timotimo | Perl6/Optimizer.nqp has a "is_from_core" or "find_in_setting" method or so | ||
colomon | FROGGS: perhaps? | ||
14:06
PacoAir joined
|
|||
colomon | I'm working on how to get sprintf to smartly handle Rakudo types | 14:06 | |
P6opaque might be the ticket | 14:07 | ||
14:07
bluescreen10 joined
|
|||
FROGGS | colomon: I've learned that if you have an Int, it will be a P6opaque containing a P6bigint | 14:08 | |
colomon | that sounds promising | ||
how do you detect that in rakudo? | |||
FROGGS | and the native types are P6int/P6num/P6str, which you declare like: my str $a | ||
colomon considers it might be as simple as ~~ Int | |||
…. err, is P6opaque entirely NQP? | 14:10 | ||
FROGGS | r: my $x = 42; say $x.REPR | 14:11 | |
camelia | rakudo 624ff7: OUTPUT«P6opaque» | ||
FROGGS | colomon: yes, 6model belongs to nqp | ||
r: my int $x = 42; say $x.REPR | |||
camelia | rakudo 624ff7: OUTPUT«P6opaque» | ||
FROGGS | :/ | ||
colomon | r: my $x = 42; say $x.REPR | ||
camelia | rakudo 624ff7: OUTPUT«P6opaque» | ||
FROGGS | r: my int $x := 42; say $x.REPR | 14:12 | |
camelia | rakudo 624ff7: OUTPUT«===SORRY!===Cannot bind to natively typed variable '$x'; use assignment insteadat /tmp/NXnjG4PeG0:1------> my int $x := 42⏏; say $x.REPR expecting any of: postfix» | ||
colomon | r: my $x = 42; say $x.REPR eq "P6opaque" | 14:14 | |
camelia | rakudo 624ff7: OUTPUT«True» | ||
jnthn | FROGGS: If you call a method on a native type you force it to be boxed so there's an object to call the method on. | ||
(Which applies to macro-ish things like .REPR too) | 14:15 | ||
FROGGS | yeah, I was thinking that something like this happens... | ||
r: my $x = 42; say($x.HOW.name($x)); | |||
camelia | rakudo 624ff7: OUTPUT«Int» | ||
colomon | jnthn: so, I'm trying to make a method sprintf can call to ask "Should this handler handle this argument"? | 14:17 | |
just tried $x.REPR eq "P6opaque" and it fails miserably | |||
FROGGS | colomon: you can try to print this on the thing you get: say($x.HOW.name($x)); | ||
jnthn | colomon: In NQP? | ||
FROGGS | in sprintf.nqp I suppose | ||
jnthn | Well, trouble is that on JVM everything is a 6model object; on Parrot it may not be... | 14:18 | |
colomon | …. well, sprintf in NQP. I've been trying to write said method in full p6, assuming sprintf can call back to it. | ||
jnthn | .REPR may not be in NQP | ||
nqp::reprname(...) is the underlying op though. | |||
colomon | nqp::reprname seems like it might do the trick? | 14:19 | |
nqp::reprname($x) eq "P6opaque" | |||
so given $x.Int (rakudo), how do I get to the P6bigint? | 14:21 | ||
FROGGS | colomon: you dont I think, just use the bigint ops it it is a Int | ||
jnthn | Right, you can use the bigint ops directly on a P6opaque with a P6bigint inside of it | 14:22 | |
colomon | trying now... | ||
colomon finds the full recompile kind of slow... | 14:23 | ||
FROGGS | colomon: come to #moarvm :P | 14:24 | |
colomon | FROGGS: jvm is important to my plans for world domination | ||
FROGGS | ahh, I see | 14:25 | |
colomon | or could I actually develop rakudo's nqp sprintf on MoarVM? It isn't that far along yet, is it? | ||
TimToady pictures the world falling like dominoes | |||
colomon | bwah-ha-HA-ha | ||
FROGGS | colomon: I'm trying to merge sprintf.nqp in right now | 14:26 | |
colomon | FROGGS: but the important bit of what I'm working on is getting Rakudo variables to work in sprintf.nqp | 14:27 | |
FROGGS | yeah, and this will work everywhere :o) | ||
so you're really working for (at least) three backends at once | |||
colomon | :) | 14:28 | |
as far as I know, the only place it actually works now is JVM. (And that's for a very loose definition of works, else I'd be done!) | |||
but yes, hitting all the backends is certainly a goal. | 14:29 | ||
colomon is going to run out of laptop battery before his son runs out of (morning) tennis camp | 14:30 | ||
r: say 2**100 | |||
camelia | rakudo 624ff7: OUTPUT«1267650600228229401496703205376» | ||
colomon | sweet!!!!! | ||
TimToady | bet that took a lot of electrons... | ||
colomon | r: say (2 ** 100) / 3 | 14:31 | |
camelia | rakudo 624ff7: OUTPUT«422550200076076467165567735125.333333» | ||
colomon | those both just worked correctly in my test. \o/ | ||
dalek | rlito: c8c5ad5 | (Flavio S. Glock)++ | src5/lib/Perlito5/Grammar/Print.pm: Perlito5 - indirect syntax for print - tweak |
||
rlito: 1e5c22a | (Flavio S. Glock)++ | / (2 files): Perlito5 - recompile |
|||
colomon | jnthn: okay, I can write an argument handler for sprintf and it works. where should I pass it in Rakudo? | 14:32 | |
14:32
SamuraiJack left
|
|||
colomon expected much greater difficultly making this work. nqp++ | 14:32 | ||
14:36
ajr joined,
ajr_ left,
ajr is now known as Guest95143,
Guest95143 is now known as ajr_
14:38
Bzek joined
|
|||
colomon | Do we have a Rakudo-specific namespace? | 14:40 | |
14:43
skids joined
|
|||
colomon | Error while constructing error object:Could not locate compile-time value for symbol Syntax::Confused | 14:43 | |
Error while compiling, type X::Syntax::Confused | |||
timotimo | it's a followup from a Syntax::Confused error being thrown in the setting before it reaches the point where Syntax::Confused gets declared | 14:49 | |
oh wait | |||
haha, that's amusing :) | |||
colomon is going to run out of battery power before this compile finishes... | 14:54 | ||
timotimo | that's why i always ssh to my desktop at home. it has 2x the ram, 2x the cores and each core is faster and in addition, it doesn't heat my laptop up and is connected directly to the wall :) | 14:55 | |
colomon | timotimo: yeah, I should have thought of that two hours ago. | ||
I got used to working without an internet connection last week. | 14:56 | ||
14:56
colomon left
14:57
kaare_ left
|
|||
timotimo | i can only reach my desktop from places where i have ipv6 connectivity, so it's not perfect either ;) | 14:58 | |
hoelzro | $*W.is_name($*W.dissect_longname('Int').type_name_parts('type name')) # 0 | ||
wtf? | |||
timotimo: you don't have a VPN? =) | |||
15:02
konundra left
15:05
fhelmberger left
|
|||
timotimo | i don't. i have a fritzbox which has some strange proprietary vpn thing built in that i can't seem to access properly from the outside. haven't tried too thoroughly though | 15:07 | |
hoelzro | bummer =/ | 15:08 | |
timotimo | but you're right. i should probably set up proper firewall rules on my router | ||
it seems like my cups is showing to the outside world | |||
luckily i don't have printers. | |||
hoelzro | haha | ||
flussence | doesn't it still have "print to PDF" though? | 15:09 | |
15:09
konundra joined
|
|||
timotimo | i think that's only for local. but what do i know? | 15:09 | |
i don't expect many attacks to come through ipv6 yet | 15:10 | ||
but that's a very bad reason to not run a firewall. | |||
very, very, very bad. | |||
flussence | I don't have any printers either, but stupid java has a hard dep on cups... | ||
hoelzro | timotimo: your ipv6 traffic is all open? | ||
timotimo | not any more | 15:11 | |
i guess i didn't think about how dumb that was until now :) | 15:12 | ||
hoelzro | heh | 15:15 | |
timotimo | but it's just so nice ... no need to nat, just have all the ports open and you can reach the machine from everywhere! | 15:16 | |
hoelzro | yeah | ||
it *is* nice =) | |||
hoelzro misses his desktop | |||
15:17
kaare_ joined
15:25
colomon joined
|
|||
colomon | t/spec/S32-str/sprintf.rakudo.jvm (Wstat: 0 Tests: 126 Failed: 0) | 15:32 | |
TODO passed: 43-62 | |||
FROGGS | ohh cool | ||
colomon++ | |||
timotimo | wow, pretty great! :) | 15:33 | |
colomon | still needs some cleanup, but this feels like a great start. | ||
:) | |||
timotimo | that's 0 failed, are any skipped? probably some missing? | ||
FROGGS | sprintf has 255 tests imo | ||
timotimo | 'k | 15:35 | |
colomon | there are definitely some skipped / todo'd. (not just in JVM, I should add) | ||
FROGGS: nope, 126 | |||
FROGGS | hmmm | ||
ahh, nqp's sprintf.t has 255 tests | 15:36 | ||
pretty cool :o) | |||
15:36
cognominal left
|
|||
colomon | afk # nom pickup | 15:37 | |
15:43
notjack joined
15:48
colomon left
15:49
colomon joined
|
|||
jnthn | TimToady: Is a buf8 etc. considered a form of "native" type? | 15:50 | |
TimToady: But another way, do we expect buf8 to directly be a buffer of memory, or do we expect it to be a P6opaque that contains one? | 15:51 | ||
diakopter | jnthn: you're thinking it's kindof a .NET value type? | ||
(each size/length its own "type") | |||
jnthn | TimToady: The first meaning that we get to optimize it a bunch more, the second meaning you could mix in to it... | ||
diakopter assumed you meant you preferred the former. :) | 15:52 | ||
colomon | woah, those 20 passing tests I just got don't pass in parrakudo! | ||
diakopter | probably flukes | ||
;) | |||
jnthn | diakopter: More about if you do my $a = buf8.new(), does it have repr VMArray or P6opaque :) | ||
s/But/Put/ above | 15:53 | ||
diakopter | right; I just meant for optimization purposes (possibly allocated on teh stack like .NET) | ||
er, definitely allocated on the stack | |||
since it's always copied | |||
jnthn | int[] a; /* not allocated on the stack :-) */ | 15:54 | |
diakopter | jnthn: I meant C# struct foo { int a,b,c,d,e,f,g,h,i,j,etc; } | ||
jnthn | ah, ok | ||
diakopter | (one struct "type" for each length/width) | 15:55 | |
optimize all teh things. | |||
jnthn: but couldn't it be also mixed into the other way? (so ones that are mixed into could be references, and the others not?) | 15:56 | ||
I mean, the compiler is always going to know whether it's definitely value-type-able or not | 15:57 | ||
jnthn | Mixins are runtime | 15:58 | |
We don't know statically whether it will happen. | |||
15:59
FROGGS left
|
|||
diakopter | jnthn: I guess I meant for non-"statically typed" variables that the optimizer can determine will never be mixed in like that | 16:00 | |
GlitchMr | rn: class Foo { has $!shyguy = 42; } my Foo $foo .= new; say $foo.^attributes.first('$!shyguy').get_value($foo); | 16:02 | |
camelia | niecza v24-88-g1f87209: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/m3Os0EBP4T line 1:------> class Foo { has $!shyguy = 42; }⏏ my Foo $foo .= new; say $foo.^attributeParse failed»… | ||
..rakudo 624ff7: OUTPUT«===SORRY!===Two terms in a rowat /tmp/T73yvzTyeh:1------> class Foo { has $!shyguy = 42; } ⏏my Foo $foo .= new; say $foo.^attributes expecting any of: postfix statement end statement modifier … | |||
GlitchMr | rn: class Foo { has $!shyguy = 42; }; my Foo $foo .= new; say $foo.^attributes.first('$!shyguy').get_value($foo); | ||
camelia | rakudo 624ff7: OUTPUT«42» | ||
..niecza v24-88-g1f87209: OUTPUT«Unhandled exception: Unable to resolve method attributes in type ClassHOW at /tmp/KlTjF9Mm7X line 1 (mainline @ 8)  at /home/p6eval/niecza/lib/CORE.setting line 4579 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4580 (module-CORE @ 576)  … | |||
GlitchMr | Sounds like a hacky way of accessing private properties. | ||
jnthn | Yes, it's not meant to be pleasant to do so. | 16:03 | |
16:03
bluescreen100 joined
16:04
kaleem left
|
|||
GlitchMr | But still possible, right? | 16:04 | |
16:04
kaleem joined
|
|||
jnthn | Right. | 16:04 | |
"Make ... the hard things possible" :) | 16:05 | ||
16:06
bluescreen10 left
|
|||
GlitchMr | By the way, I'm not sure whatever it's bug or not, but in Rakudo, when you "use" some unknown module, the "===SORRY!===" doesn't have colors | 16:10 | |
16:11
pmurias left
16:13
grondilu joined
16:17
vk_ joined
16:19
havenwood joined
16:26
FROGGS joined
16:34
kaleem left,
nebuchadnezzar left,
nebuchadnezzar joined
16:36
domidumont left
16:37
ajr_ left
16:38
kaare__ joined,
Rotwang left
16:40
kaare_ left
|
|||
colomon | rn: say (5.6).fmt('%f') | 16:42 | |
camelia | rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«5.600000» | ||
colomon | rn: printf("%f", 5.6) | 16:44 | |
camelia | rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«5.600000» | ||
16:44
kaleem joined
|
|||
dalek | ast: 19624e1 | (Solomon Foster)++ | S02-names-vars/fmt.t: Fix broken %f tests and unfudge them. |
16:45 | |
GlitchMr | std: for $nonsense {} | 16:47 | |
camelia | std c2215f0: OUTPUT«===SORRY!===Variable $nonsense is not predeclared at /tmp/6lpLteh64f line 1:------> for ⏏$nonsense {}Potential difficulties: 'for $nonsense' will never flatten a $ variable; to force list interpolation, please use either 'fo… | ||
GlitchMr | std: my $nonsense; for $nonsense[] {} | ||
camelia | std c2215f0: OUTPUT«ok 00:00 45m» | ||
GlitchMr | std: my $nonsense; for $nonsense<a> {} | ||
camelia | std c2215f0: OUTPUT«ok 00:00 44m» | ||
GlitchMr | ok | ||
16:51
sahadev left
16:54
Rotwang joined
16:57
kaleem left
|
|||
GlitchMr | std: use Use::No::Colors::In::Error | 16:57 | |
camelia | std c2215f0: OUTPUT«===SORRY!===Cannot locate module Use::No::Colors::In::Error at /tmp/STKinO2jny line 1 (EOF):------> use Use::No::Colors::In::Error⏏<EOL>Check failedFAILED 00:00 41m» | ||
GlitchMr | r: use Use::No::Colors::In::Error | 16:58 | |
camelia | rakudo 624ff7: OUTPUT«===SORRY!===Could not find Use::No::Colors::In::Error in any of: /home/p6eval/nom-inst/lib/parrot/5.5.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/5.5.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/5.5.0-devel/languages/… | ||
GlitchMr | No colors in ===SORRY!=== | ||
lizmat | good *, #perl6! | 16:59 | |
jnthn | o/ lizmat | ||
lizmat | r: .say.WHAT for (1,(2,3),4) # sort of expected Int, Parcel, Int here | ||
camelia | rakudo 624ff7: OUTPUT«1234» | ||
17:00
spider-mario joined
|
|||
lizmat | r: .WHAT.say for (1,(2,3),4) # sort of expected Int, Parcel, Int here | 17:00 | |
camelia | rakudo 624ff7: OUTPUT«(Int)(Int)(Int)(Int)» | ||
jnthn | lizmat: Parcels flatten in list context. | ||
lizmat | aha! | ||
GlitchMr | .WHAT.say for (1,(2,3),4).tree | 17:05 | |
r: .WHAT.say for (1,(2,3),4).tree | |||
camelia | rakudo 624ff7: OUTPUT«(Int)(Parcel)(Int)» | ||
GlitchMr | Here | ||
This is probably what you wanted | |||
17:06
birdwindupbird left
|
|||
timotimo | oh, huh | 17:11 | |
>>.WHAT isn't nodal, it's ... scalal | |||
moritz | .WHAT is not a method call | 17:12 | |
timotimo | it's a macro, yes? | ||
moritz | yes | ||
lizmat | r: my @b := map { 0 ?? $_ !! () }, 1,2,3; say @b.perl # according to spec, this should be ().list, right | 17:14 | |
camelia | rakudo 624ff7: OUTPUT«((), (), ()).list» | ||
dalek | p: b16ca35 | (Solomon Foster)++ | src/ (2 files): Add sprintfAddHandler and use it. This allows you to register a handler which knows how to convert types NQP doesn't know about to bigints. (Eventually I hope to expand it to floating point values and strings as well.) I'm not particularly attached to the name sprintfAddHandler, if someone has a better suggestion. |
||
lizmat | r: my @b := map { 0 ?? $_ !! Nil }, 1,2,3; say @b.perl # according to spec, this should be (Nil,Nil,Nil).list, right ? | ||
camelia | rakudo 624ff7: OUTPUT«().list» | ||
timotimo | n: my @b := map { 0 ?? $_ !! Nil }, 1,2,3; say @b.perl | 17:15 | |
camelia | niecza v24-88-g1f87209: OUTPUT«().list» | ||
timotimo | at least both are equally wrong/right :) | ||
jnthn | colomon: op names tend to be lowercase | ||
colomon: also, add handler for...what? ;) | |||
lizmat | r: my @b := map { $_ if 0 }, 1,2,3; say @b.perl # internally, this currently has the Nil behaviour | ||
camelia | rakudo 624ff7: OUTPUT«().list» | ||
lizmat | moritz: it would seem to me that grep currently also depends on the wrong Nil behaviour | 17:16 | |
timotimo | it should use () instead, is that correct? | 17:17 | |
moritz | lizmat: most likely, yes | ||
jnthn | lizmat: I suspect an awful lot of things do | 17:18 | |
colomon | afk # would post next bit, but "You must pretend you're an AT-AT!" | ||
lizmat | then I will not change current squish/uniq implementations :-) | ||
timotimo | aaw, kids | ||
lizmat | my roadmap in that respect is: get var traits in (jnthn++), get is_default working, get Nil assignment working, check all of the code for incorrect Nil usage and fix that, | 17:21 | |
jnthn will try to get to var traits soon :) | 17:22 | ||
Got a lot of things I want to attack, Buf amongst 'em. | |||
lizmat | jnthn: at your convenience, getting jakudo to 100% is much more important | ||
jnthn | Well, currently I'm looking at Buf stuff | 17:23 | |
But I want to get Buf righter rather than today's hack. | |||
timotimo | so tell me. if i have =begin code ... =end code and the code inside it is indented, but only exactly to be flush with the = signs | ||
the code should *not* end up with spaces in front of it in every line, right? | |||
as in: every space that's in front of the =begin should be stripped from the rest as well, yes? | 17:24 | ||
moritz | timotimo: I think so, yes | ||
timotimo runs off to fix that | |||
colomon | argh | 17:25 | |
timotimo | there is already code in there that is supposed to chop off spaces from the beginning of every line | 17:26 | |
jnthn | Turns out that the stuff I need to do in order to get Buf in place in a better way is also the foundation stuff for native arrays... | ||
timotimo | nqp: my $spaces := " "; my $first := " foo\n bar\n baz\n"; nqp::say(subst($first, /\n$spaces/, :global)); | 17:28 | |
camelia | nqp: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expectedcurrent instr.: 'subst' pc 1014 (src/stage2/gen/NQPCORE.setting.pir:484) (src/stage2/NQPCORE.setting:701)» | ||
timotimo | nqp: my $spaces := " "; my $first := " foo\n bar\n baz\n"; nqp::say(subst($first, /\n$spaces/, "\n", :global)); | ||
camelia | nqp: OUTPUT« foobarbaz» | ||
lizmat | jnthn: that sounds like excellent news, actually | ||
colomon | \o/ | ||
17:30
domidumont joined
|
|||
grondilu | rn: say my $σ = 4; # testing a unicode variable name | 17:32 | |
camelia | rakudo 624ff7: OUTPUT«4» | ||
..niecza v24-88-g1f87209: OUTPUT«Potential difficulties: $σ is declared but not used at /tmp/gA5J7Om1Vd line 1:------> say my ⏏$σ = 4; # testing a unicode variable nam4» | |||
grondilu | rn: my $σ0 = 4; say $σ0 # testing a unicode variable name with a numeric suffix | 17:35 | |
camelia | rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«4» | ||
dalek | p: e4dc9d2 | (Solomon Foster)++ | src/HLL/sprintf.nqp: Fix sprintfAddHandler return value. I deleted the return value just before pushing the last patch. Turns out it was important. Whoops. |
||
17:35
prammer left
|
|||
dalek | kudo/rebuf: 56bde21 | jnthn++ | / (8 files): Start preparing MOP for Buf[T] and native arrays. |
17:35 | |
kudo/nom: ba6da77 | (Solomon Foster)++ | src/core/Cool.pm: Initialize sprintf argument handler when needed. |
|||
17:36
prammer joined
|
|||
grondilu | rn: my $σ0 = 4; say $σ0 # I get a "two terms in a row" with this on my machine :/ | 17:38 | |
camelia | rakudo 624ff7, niecza v24-88-g1f87209: OUTPUT«4» | ||
grondilu | yet I'm running 624ff7. Weird. | 17:39 | |
17:39
sahadev joined
17:40
mls left
|
|||
timotimo | interestingly, it seems like pod_textcontent:sym<code> is not being called when i have a =begin code ... =end code | 17:42 | |
moritz | grondilu: maybe REPL vs. one-line vs. program from file? | 17:47 | |
timotimo | i must say the pod parsing code looks a bit like kraut and rüben. | 17:48 | |
=o | 17:51 | ||
i put debug outputs into both textcontent variants, code and regular. neither gets output when i parse my =begin code ... =end code *or* the =begin pod ... =end pod i optionally put around it | |||
dalek | rlito: 78f005a | (Flavio S. Glock)++ | src5/ (5 files): Perlito5 - js - move all I/O to IO.pm |
17:53 | |
rlito: fc831b6 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - move all I/O to IO.pm |
|||
17:56
sahadev left
|
|||
dalek | kudo/nom: 45d4473 | (Elizabeth Mattijsen)++ | src/core/Any.pm: Make {@keys}:k use slighlty less CPU |
18:01 | |
18:03
fgomez joined
|
|||
timotimo | i'm now convinced rakudo is trying to troll me and i will not investigate further today. | 18:05 | |
dalek | kudo-star-daily: 942836f | coke++ | log/ (5 files): today (automated commit) |
18:06 | |
kudo-star-daily: 00efa50 | coke++ | log/ (5 files): today (automated commit) |
|||
kudo-star-daily: 5098ee3 | coke++ | log/ (5 files): today (automated commit) |
|||
jnthn | trolololol | ||
huh, 3 updates? :) | 18:07 | ||
oh, rakudo *star* faily! | |||
*daily | |||
!! | |||
[Coke]++ | |||
timotimo | cool! | ||
18:08
bbkr joined
|
|||
timotimo | i wonder if it would be nice to have a filter run over the outputs that will round the time taken to the next 10 and remove the parenthesized parts? so that there's not so much noies? | 18:09 | |
noise* | |||
[Coke] | jnthn: right now it's just doing a star build out of the repo. need to make it smarter and try to grab latest rakudo.parrot and latest repository variants. | 18:10 | |
timotimo | good idea | ||
[Coke] | Testing modules/perl6-File-Tools... | ||
is failing. | |||
t/02-shell-command.t is failing | |||
looks like quite a bit is failing, actually: github.com/coke/rakudo-star-daily/...odules.log | 18:11 | ||
timotimo | yeah. isn't that from a version mismatch of rakudo and the tools? | ||
r: dir()[0].copy | |||
camelia | rakudo 624ff7: OUTPUT«Not enough positional parameters passed; got 1 but expected 2 in method copy at src/gen/CORE.setting:11846 in block at /tmp/IZp3_NEy76:1» | ||
timotimo | r: dir()[0].WHAT.say | ||
camelia | rakudo 624ff7: OUTPUT«(IO::Path)» | ||
timotimo | because IO::Path does have a copy method. | ||
[Coke] | I'm pretty sure it's the fixed version of rakudo and the modules that are listed in the star repo that are used. | 18:12 | |
so perhaps we need to bump those versions. | |||
timotimo | that sounds like the problem, yeah | ||
[Coke] | I hesitate to always "get latest" on the star build, because that may not be what the stable is. might be nice to have a tag or a sha1 somewhere to indicate "please use this latest version" in the ecosystem somewhere. | 18:13 | |
timotimo | that sounds good. a "star" branch for every project; if no star branch exists, pull in the newest master each time? | 18:14 | |
[Coke] | or maybe I can generate the list of sha1s used when I do the run, and whoever packages up star can check to see what the latest one that worked was. | 18:15 | |
18:15
SamuraiJack joined
|
|||
[Coke] | (that's something I can easily control, anyway) | 18:15 | |
timotimo | that's a good idea, too | ||
18:16
kaleem joined,
fgomez left
18:17
kaleem left,
fgomez joined
18:20
raiph joined
|
|||
grondilu | moritz: (about the unicode variable) No, I've just checked in the REPL. Fails too. I've tried in a file, on the command line with -e, and in the REPL. Always failed. Maybe my terminal has a bad config. | 18:21 | |
timotimo | it turns out that pod_textcontent:sym<code> isn't even used. instead, pod_block:sym<delimited_raw> seems to be. | 18:23 | |
raiph | looks like i'm permabanned from /r/perl: www.reddit.com/r/perl/comments/1id0...hread_and/ | ||
timotimo | what makes you think that? | 18:25 | |
because nobody is commenting? | |||
raiph | that post was never visible from the main page | ||
same happened to my last post, for one day, then it appeared | 18:26 | ||
but this one has not appeared and it's been 3 days since i submitted it | 18:28 | ||
18:28
konundra left
|
|||
raiph | i'm not bothered by the ban, just intrigued | 18:30 | |
18:30
konundra joined
18:32
daxim left
|
|||
dalek | ast: 5e490ab | (Solomon Foster)++ | S32-str/sprintf.t: Unfudge tests in JVM. |
18:34 | |
[Coke] | jvm run seems much slower today | 18:35 | |
dunno if it's just me. | |||
lizmat | r: my %h; %h<bar><baz> := 'zoom' # rakudobug ? | 18:37 | |
camelia | rakudo 45d447: OUTPUT«No such method 'bind_key' for invocant of type 'Any' in method postcircumfix:<{ }> at src/gen/CORE.setting:1748 in method postcircumfix:<{ }> at src/gen/CORE.setting:1733 in block at /tmp/ZuZrMkeTU0:1» | ||
lizmat | n: my %h; %h<bar><baz> := 'zoom' # rakudobug ? | ||
camelia | niecza v24-88-g1f87209: ( no output ) | 18:38 | |
lizmat | n: my %h; %h<bar><baz> := 'zoom'; say %h<bar>baz> | ||
camelia | niecza v24-88-g1f87209: OUTPUT«===SORRY!===Two terms in a row at /tmp/3yBFogCR4p line 1:------> %h; %h<bar><baz> := 'zoom'; say %h<bar>⏏baz>Parse failed» | ||
lizmat | n: my %h; %h<bar><baz> := 'zoom'; say %h<bar><baz> | ||
camelia | niecza v24-88-g1f87209: OUTPUT«zoom» | ||
lizmat files rakudobug | |||
p: my %h; %h<bar><baz> := 'zoom'; say %h<bar><baz> | 18:41 | ||
camelia | pugs: OUTPUT«zoom» | ||
diakopter | r: my %h; (%h<bar>={})<baz> := 'zoom' | ||
camelia | rakudo 45d447: ( no output ) | ||
diakopter | r: my %h; (%h<bar>={})<baz> := 'zoom'; say %h<bar><baz> | ||
camelia | rakudo 45d447: OUTPUT«zoom» | ||
diakopter | hrm | 18:42 | |
lizmat | p: my %h; %h<bar><baz>; say %h<bar> | ||
camelia | pugs: OUTPUT«» | ||
diakopter | r: my %h; (%h<bar>:={})<baz> := 'zoom'; say %h<bar><baz> | ||
lizmat | n: my %h; %h<bar><baz>; say %h<bar> | ||
camelia | rakudo 45d447: OUTPUT«zoom» | ||
niecza v24-88-g1f87209: OUTPUT«(Any)» | |||
diakopter | r: my %h; (%h<bar>:=%h)<baz> := 'zoom'; say %h<bar><baz> # LOLOLOLOLOLOL | 18:43 | |
camelia | rakudo 45d447: OUTPUT«zoom» | ||
diakopter | (lol b/c it's bound) | ||
dalek | ast: 9254143 | (Elizabeth Mattijsen)++ | S02-types/hash.t: Some more basic hash tests, found one problem (#118947) |
18:45 | |
diakopter | rnp: my %h; %h<bar> := %h; %h<bar> := {}; say keys %h | 18:46 | |
camelia | pugs: OUTPUT«barbar» | ||
..rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«bar» | |||
diakopter | rnp: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h | ||
camelia | pugs: OUTPUT«*** Can't modify constant item: VList [] at /tmp/9CKQOnm0Fz line 1, column 23-35» | ||
..rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«» | |||
diakopter | heh. | ||
TimToady | jnthn: yes, buf8 is a native type, and cannot be mixed into; it might, however, be generic in the binding sense, so that a routine can handle any length of buf8, for instance, as a parameter | ||
diakopter | barbar indeed | ||
note NO keys on the 2nd one above for rakudo and niecza | 18:47 | ||
talk about action at a distance | |||
TimToady | any given native type has a descriptor somewhere (at least notionally, even if the compiler throws it out) that carries the type on behalf of the native location, and passing around such a descriptor has the appearance of mutating the type where it is bound | 18:48 | |
the purpose buf8 is primarily to represent a chunk of memory | 18:49 | ||
*of | |||
lizmat | r: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h; say keys %h<bar> # but apparently something's still in %h<bar> | ||
camelia | rakudo 45d447: OUTPUT«0» | ||
TimToady | this is why it's mutable, for instance | 18:50 | |
diakopter | lizmat: whoa! | ||
lizmat | r: my %h; say keys %h<foo> # same | ||
camelia | rakudo 45d447: OUTPUT«0» | ||
diakopter | oh. | ||
r: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h; say keys %h<bar>; say keys %h | 18:51 | ||
camelia | rakudo 45d447: OUTPUT«0» | ||
lizmat | r: say Any.keys | ||
camelia | rakudo 45d447: OUTPUT«0» | ||
lizmat | r: say Any.list.keys | ||
camelia | rakudo 45d447: OUTPUT«0» | ||
18:51
colomon left
|
|||
lizmat | r: say Any.list | 18:51 | |
camelia | rakudo 45d447: OUTPUT«(Any)» | ||
TimToady | it's the 0 from the .kv of a 1 element list, I guess | 18:52 | |
diakopter | r: my %h; %h<bar> := %h; %h<bar> = {}; say keys %h; say keys %h<bar>; say keys %h<bar><bar>; say keys %h<bar><bar><bar>; say keys %h<bar><bar><bar><bar> | ||
camelia | rakudo 45d447: OUTPUT«0000» | ||
TimToady | r: say keys Any,Any,Any | 18:53 | |
camelia | rakudo 45d447: OUTPUT«===SORRY!===CHECK FAILED:Calling 'keys' will never work with argument types (Any, Any, Any) (lines 1, 1) Expected any of: :($x)» | ||
diakopter | rnp: my %h; %h<bar> := %h; %h<bar> = {bar=>%h}; say keys %h; say keys %h<bar>; say keys %h<bar><bar>; say keys %h<bar><bar><bar>; say keys %h<bar><bar><bar><bar> | 18:54 | |
camelia | pugs: OUTPUT«*** Can't modify constant item: VList [] at /tmp/Z1ndHYaqkX line 1, column 23-42» | ||
..rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«barbarbarbarbar» | |||
TimToady | r: say keys (Any,Any,Any) | ||
camelia | rakudo 45d447: OUTPUT«0 1 2» | ||
lizmat | r: say Any.list.end # shouldn't this be -1 ? | ||
camelia | rakudo 45d447: OUTPUT«0» | ||
TimToady | it's a list of 1 element | ||
Any !=== () | |||
18:54
cooper left
|
|||
lizmat | r: say Any.list.elems # indeed | 18:55 | |
camelia | rakudo 45d447: OUTPUT«1» | ||
lizmat | r: say Any.keys # still feels strange | 18:56 | |
camelia | rakudo 45d447: OUTPUT«0» | ||
TimToady | not sure there's much to be done about--it's the WAT that goes with an important DWIM, and it's pretty well hidden, for a WAT | ||
.oO(Masak's Law) |
18:57 | ||
timotimo: the opposite of nodal is...leafal! | 19:00 | ||
PerlJam | .oO( I thought it was "dal" ) |
||
TimToady | only in an Indian restaurant | ||
[Coke] | leafy | ||
TimToady | nodey? | 19:01 | |
lizmat | lentilly? | ||
TimToady | branchy? | ||
that would be lenticular :) | |||
19:01
cooper joined
|
|||
lizmat | .oO( wonder if I can have my NaN and eat it too ) |
19:02 | |
TimToady | jnthn: yes, a buf8 is precisly a native array of int8 | ||
*cise | |||
lizmat still needs to get used to intX where X indicates the number of bits | 19:03 | ||
19:08
bbkr1 joined
|
|||
dalek | ecs: 43de78c | duff++ | S99-glossary.pod: Change explanation of S99's purpose slightly |
19:08 | |
ecs: a35523c | duff++ | S99-glossary.pod: add WAT |
|||
[Coke] | duff: what is point of adding WAT if you're not going to define it? :P | 19:09 | |
TimToady | WAT!?! | ||
lizmat | well, I was wondering WAT as well | ||
19:10
bbkr left,
bbkr joined
|
|||
PerlJam | Coke: I'm not sure if WAT has taken on some more-specialized meaning in a #perl6 context or not. | 19:10 | |
These things tend to happen you know. | |||
TimToady | According to Masak's Law, a WAT is the price you must pay for its corresponding DWIM. :) | 19:11 | |
Or is that Mäsak's Law? | |||
jnthn | TimToady: OK, thanks :) | 19:12 | |
[Coke] | so, unexpected behavior? | ||
PerlJam | (plus, I'm not sure what I would put if it hasn't. "extreme expression of confusion or disbelief"? ) | ||
TimToady | that's its meaning in the larger culture | ||
19:12
bbkr1 left
|
|||
lizmat | ok, so WAT is more like .WHAT? | 19:12 | |
PerlJam | lizmat: See www.destroyallsoftware.com/talks/wat | 19:13 | |
jnthn | lizmat: WAT is www.destroyallsoftware.com/talks/wat | ||
dalek | rl6-roast-data: cef0386 | coke++ | / (5 files): today (automated commit) |
||
TimToady | maybe we should rename Nil to WAT | ||
just to confuse people | 19:14 | ||
lizmat | 99.07 still | ||
dalek | ecs: 5bed3c8 | (Elizabeth Mattijsen)++ | S99-glossary.pod: This explains WAT: PerlJam++, jnthn++ |
19:19 | |
19:20
bbkr left
|
|||
lizmat | r: my $a; say $a.list.perl # wonder if special casing Any.list to be () wouldn't make a lot of sense | 19:22 | |
camelia | rakudo 45d447: OUTPUT«(Any,).list» | ||
lizmat | TimToady: fwiw, it doesn't fail any spectest if I do this for any undefined vakue | 19:23 | |
TimToady | I'm sure such a DWIM would have its own WAT | 19:24 | |
probably better to leave the current WAT in place | |||
PerlJam | lizmat: what would my Dog $fido; $fido.list.perl; be in that hypothetical universe? | 19:25 | |
lizmat | ().list | ||
assuming Dog doesn't have its own .list and inherits from Any | 19:26 | ||
and doesn't have any other .list in its ^mro | |||
jnthn | hmm...meta-programming is a bit fiddly sometimes... | 19:28 | |
19:29
colomon joined
|
|||
lizmat | anyway, this is the diff for that hypothetical universe, it passes all current spectests: gist.github.com/lizmat/6041763 | 19:30 | |
colomon | [Coke]: JVM seemed much slower to me too, but I assumed it was because I was doing other stuff in the background and running on battery. huh. | 19:32 | |
jnthn | Hm | 19:33 | |
PerlJam | lizmat: I can imagine something like @stuff ==> map { $mumble.list } ==> @other-stuff would be surprising if $mumble.list made an undefined $mumble disappear rather than putting an undefined thing in the resulting list. | ||
lizmat: (that's my only argument for keeping things the way they are :) | |||
jnthn | colomon: If you fancy working out what's to blame, that'd be helpful. I don't have any immediate guesses... | ||
lizmat | PerlJam: Well, if $mumble would be Nil, then that is exactly what would happen | 19:35 | |
however, unless $mumble is defined with "is default(Nil)", that will *never* happen | |||
as the assignment of Nil to $mumble, will set that to whatever is the default for $mumble (usually Any) | 19:36 | ||
timotimo | TimToady: you have excluded a Third. in this case it's more like WholeTreeal | ||
or Rootal | |||
lizmat | .oO( maybe we need a .weed method ) |
19:37 | |
TimToady | timotimo: eh, every node looks like a whole tree if you 'gnore its parent | ||
colomon | jnthn: I don't know that I have the time to work on it right now… I've got a 4-year-old who's wanting a lot of attention this afternoon. | ||
timotimo | hehe | 19:38 | |
colomon | but I just compiled, (well, started), and stage parse is taking 53 seconds when I would swear it was just 20-something yesterday | 19:42 | |
jnthn | Odd, it's about the same ehre | ||
*here | |||
Around 39s/40s | |||
colomon | trying a build on my Linux box, which hasn't been updated in a while | 19:43 | |
timotimo | i haven't been able to create a raco condition with (^100).map({ async { $global = $global + 1 } }) | 19:52 | |
TimToady | you need to implement 'race' first :) | 19:53 | |
19:55
SamuraiJack left
|
|||
jnthn | TimToady: Well, you must be getting far too lucky :P | 19:55 | |
uh, timotimo | |||
TimToady is always far too lucky, though sometimes the luck is bad. | 19:56 | ||
lizmat | timotimo: when you say, "no race condition" do you mean $global maintains its integrity, or that it didn't miss any of the +1's ? | 20:01 | |
20:04
raiph left
|
|||
TimToady | jnthn has a race condition in his autocompleter | 20:04 | |
colomon | jnthn: you'll be happy to know I didn't see any slowdown at all comparing the July 5th version to the latest (on my Linux box) | 20:08 | |
jnthn | ok | ||
jnthn is still a little unnerved that colomon and [Coke] sensed there was one on some boxes... | 20:09 | ||
colomon | yes, it still might be worth investigating. here are the numbers I got on my linux box: gist.github.com/colomon/6042000 | ||
lizmat | going to see some Pacific Rim& | 20:10 | |
colomon | Hmm, is [Coke] running on OS X too? | ||
timotimo | lizmat: $global ends up being exactly 100 in each test i ran | ||
jnthn | colomon: memory size in the boxes? | 20:11 | |
colomon | jnthn: boatloads more memory in my linux box | 20:12 | |
jnthn | k | ||
colomon: Hm, that looks like a small change there? | |||
colomon | 32 gigs versus 8 | ||
small improvement, yes. | |||
very small | |||
timotimo | jnthn: is there some per-variable lock or something on the jvm? | 20:15 | |
jnthn | No | 20:16 | |
timotimo | strange. | 20:17 | |
in that case, these asyncs must in reality actually be sync :P | |||
jnthn | timotimo: There's no locking at present. I suspect all you are seeing is that when you do so little work inside of a promise the overhead of pulling the task from the queue and invoking it outweighs the cost. | ||
timotimo | right, good point. | ||
TimToady | or it's jitting to a single instruction | ||
timotimo | perl6 isn't a language for toy examples :P | ||
jnthn | TimToady: No, not unless it's a native or something... | ||
TimToady | it's a really *smart* jitter :) | 20:18 | |
jnthn | True! :P | ||
I'm not sure whether $x++ should be naturally atomic anyway. | |||
colomon | jnthn: just watched with top, and it looked like it got up to 1.8 gigs of memory used in a couple of spots during the compile. that's not great, but it doesn't seem like it should be that bad on a machine with 8 gigs of ram. | ||
diakopter | .. but they always taught me to eliminate the jitter | ||
TimToady | wow, my heart is a-flutter | 20:19 | |
dalek | kudo/rebuf: 8237230 | jnthn++ | src/Perl6/ (6 files): Further MOP support for Buf and native arrays. This gets us able to write parametric roles whose parameterization conveys the type to do layout with down to the VMArray REPR. |
||
jnthn | That patch took more attempts to write than it shoulda... | 20:20 | |
moritz | looks non-trivial to me. | 20:22 | |
[Coke] | colomon: no, the daily jvm runs are not on os x | 20:23 | |
a branch for Buf? excellent, it was over my paylevel. | |||
regarding chdir - even if the jvm doesn't support it, we can track CWD and pass that whenever doing things that assume a WD. | 20:24 | ||
20:31
havenwood left
20:36
konundra left
|
|||
grondilu solved an other Rosalind problem in P5, for P6 was too slow :( | 20:42 | ||
rosalind.info/problems/gasm/ | 20:43 | ||
timotimo | :( | 20:45 | |
did you try jakudo, too? | |||
grondilu | jakudo doesn't work well on my machine. | ||
timotimo | aaw :( | ||
grondilu | But on second thought I may improve the P6 code and have it pass. | 20:46 | |
because there is an aspect of the problem I only realized while writing the P5 code, and it shoud make the solution come up faster. | |||
20:46
BenGoldberg joined
|
|||
timotimo | :) | 20:47 | |
grondilu | I'm just not sure I'll have the courage to bother, now that I've posted the solution already. | ||
grondilu will though, eventually. | |||
20:47
cognominal joined
20:48
kaare__ left
|
|||
jnthn | my role Buf[::T = int8] does Positional[T] does Stringy is repr('VMArray') is array_type(T) { | 20:50 | |
...now there's a type declaration... | |||
diakopter | wouldn't Stringy need a parameter too? | 20:53 | |
jnthn | No | 20:55 | |
21:07
skids left
21:10
ajr joined
21:11
ajr is now known as Guest37070,
Guest37070 is now known as ajr_
21:12
colomon left
|
|||
dalek | c: 293f229 | (Timo Paulssen)++ | htmlify.pl: tables used to blow up while debugging (pod-gist) |
21:20 | |
c: 57f9247 | (Timo Paulssen)++ | / (2 files): make indents for the classtut explicit again. |
|||
21:21
notjack left
|
|||
dalek | kudo/rebuf: 34e8703 | jnthn++ | src/Perl6/ (2 files): Avoid a couple of checking/reporting explosions. |
21:21 | |
kudo/rebuf: fa3ec02 | jnthn++ | / (4 files): Start replacing Buf. Buf is now a role, as per spec. We also provide buf8, buf16, buf32 and buf64 symbols in the setting, which are instantiations of it. However, VMArray isn't quite smart enough to pack those as it should yet. Much previous Buf functionality is still missing; it will be added back before this branch is merged. |
|||
21:23
vk_ left,
konundra joined
|
|||
timotimo | hmm. wait a second. | 21:23 | |
21:23
colomon joined
|
|||
timotimo | if i have an indented raw block, should it keep the indentation in the output by virtue of being nested inside the tree structure or by having actual spaces in it? | 21:24 | |
21:26
raiph joined
|
|||
timotimo | github.com/rakudo/rakudo/pull/184 - please advise on the behavior of nested raw blocks | 21:27 | |
lue | I would like indented bare code blocks to keep their leading whitespace, relative to normal text's virtual margin /me comments on pull request | 21:29 | |
timotimo | In addition the =code, =item, =input, and =output blocks all have implicit nesting. - i guess it applies the same way to blocks that are just raw and put into outer blocks? | ||
21:29
domidumont left
|
|||
jnthn | TimToady: From S02: "The utf8 type is derived from buf8, with the additional constraint that it may only contain validly encoded UTF-8." At what point(s) is that enforced? Any implementation hints? :) | 21:31 | |
21:31
vk_ joined
|
|||
diakopter | jnthn: we talked about that, ISTR | 21:37 | |
actually | |||
lue | .oO( utf8.new(0xE0).encode("ASCII") ) |
21:38 | |
diakopter | jnthn: TimToady will recall that's part of the larger question of Uni | ||
21:39
grondilu left
|
|||
jnthn | diakopter: Uni is closer to Str, iirc, though? Just without a normalization commitment? | 21:39 | |
TimToady | our current Str is really just Uni | ||
diakopter | ah | ||
TimToady | and NFD and NFC would have the same relationship to Uni that utf8 has to buf8, kinda | ||
but I think mostly utf8 is a promise that either you know it's utf8, or someone you trust (a filehandle?) has told you it's utf8 | 21:40 | ||
not sure how that squares with being a mutable type, in the case of buf8 | |||
the goal is that Str only contain NFG eventually, not the current codepoint semantics | 21:41 | ||
jnthn | Well, I ain't gonna get the mutability in right off, 'cus I need to shave the natives/mutability yak still... | ||
TimToady | (that is, Uni) | ||
jnthn | Yeah, agree on Str being NFG only. | ||
We just ain't there yet. | |||
dalek | p: 6b430e2 | (Donald Hunter)++ | ConfigureJVM.pl: Added --no-clean and updated usage. |
||
21:42
donaldh joined
|
|||
TimToady | possibly utf8 is an immutable version of native buf8 | 21:42 | |
jnthn | TimToady: iiuc, buf8.Str dies, utf8.Str is OK? | ||
TimToady | right | ||
jnthn | We could do it that way | ||
I was gonna ask how Blob fits in with all of this. | |||
TimToady | in any case, when it says "derived", don't take that literally | ||
jnthn | Buf feels like a mutable Blog. | ||
TimToady | it's just something we think we know more about | 21:43 | |
jnthn | uh, Blob. | ||
utf8 could be a kind of Blob instead of a kind of Buf, perhaps? | |||
TimToady | yeah, I can see that | ||
jnthn | Is there any other Blob/Buf distinction that I've missed besides the mutability? | 21:44 | |
TimToady | S02 sez: Blob An undifferentiated mass of ints, an immutable Buf | 21:45 | |
so maybe utf8 is a kind of blob8 | 21:46 | ||
jnthn | That seems workable | 21:47 | |
TimToady | and NFC/NFD is a notional blob32 that we maybe can compress to blob16/blob8 strands | ||
$b.subblob($begblob,$blobettes) :) | 21:49 | ||
dalek | p/make-install: a620765 | (Donald Hunter)++ | tools/build/ (2 files): Restructured install layout to resemble parrot install layout. |
21:50 | |
TimToady | well, they're all Stringy in some sense | ||
jnthn | :) | ||
timotimo | lue: answered to your thing on the pull request | 21:51 | |
donaldh | I've pushed a branch with a proposal for a new install layout that's closer to the parrot install layout | ||
jnthn | So if you $str.encode('utf-8') you'll be getting back an (immutable) utf8. | ||
donaldh++ | 21:52 | ||
donaldh | comments please. I still need to make updates in rakudo to work with this. | ||
jnthn | donaldh: Would you prefer commetns before you do the Rakudo stuff? | 21:53 | |
TimToady | presumably, which you then copy (notionally, at least) into a mutable buf8 that is doing, surprise, *buffering*! | ||
jnthn | Yeah, can even try and make that cheap. | ||
TimToady | probably worth having ways to encode directly into a buffer | ||
jnthn | .encode('utf-8', :buf) ? :) | 21:54 | |
21:54
spider-mario left
|
|||
donaldh | jnthn; That would be great. I'm unlikely to have tuits over the weekend. | 21:54 | |
jnthn | donaldh: ah, in that case I'll put it on my weekend todo list then :) | ||
donaldh | jnthn: also thinking about a script to pass the nqp build/run flags through to rakudo | 21:55 | |
jnthn | donaldh: Maybe we can make nqp itself able to do that with the correct command line switch, so you can perl Configure.pl --with-nqp=... and it can obtain the location(s) from that. | 21:56 | |
donaldh | would help to avoid downstream sync issues as features like NativeCall land in nqp | ||
TimToady | probably also want ways to cheat on the input side so that decoding a utf8 can just point into the buffer, if someone's willing to swear that the buffer is being treated immutably enough (disregarding the reads) | ||
from p5 experience, cheating on input is very worthwhile for speed | 21:57 | ||
donaldh | jnthn: yeah sure. Flags or nqp module? | ||
TimToady | especially if the first thing we do is convert to NFG | ||
jnthn | donaldh: Module works if it's in the default install path. | ||
TimToady | no point in copying things twice | ||
jnthn | donaldh: And is probably preferable. | ||
TimToady: Well, I was thinking if you .decode(...) on any of these things you're saying "I know what I'm doing" :) | 21:58 | ||
donaldh thinks that's easier to generate too. | |||
jnthn | TimToady: And if the decoder finds it invalid somewhere, you get an exception. | ||
TimToady | yes, "I promise" is an important concept in P6 :) | ||
donaldh | has there been any debate about the chdir problem on JVM ? | ||
jnthn | donaldh: [Coke]++ commented earlier | 21:59 | |
donaldh | i.e. lack of | ||
jnthn | donaldh: I think we try to emulate-ish it | ||
donaldh | global or thread local ? | ||
TimToady | I always figured chdir would have to emulated on some platforms, especially any that are running separate "processes" | ||
21:59
Moukeddar joined
|
|||
jnthn | donaldh: What Perl 6 spec says :P | 21:59 | |
diakopter | it's not hard to emulate.. simply provide a native wrapper that chdir's into the right thing right between your shell-out or system call or whatever | ||
er, then the wrapper invokes the thing you wanted to call | 22:00 | ||
donaldh | well it's more munging all the file ops. | ||
jnthn | TimToady: Is it thread local or process global? :) | ||
diakopter | donaldh: yes that too | ||
jnthn | donaldh: On the file ops, I'm not entirely happy with the current stuff. It was kinda my "make stuff work" solution. | ||
donaldh | well chdir is process global. | ||
TimToady | well, I always thought chdir should be dynamically scoped... :) | 22:01 | |
jnthn | donaldh: Do you have any feelings for/against doing it with nio? | ||
22:01
lue left
|
|||
jnthn | donaldh: I'm tempted towards it because I also want to get async IO in, and nio has a story on that... | 22:01 | |
donaldh | yeah. | ||
I guess it's a bit hairy but there's a manageable subset of nqp ops that would need to be aware of the logical CWD | 22:02 | ||
TimToady | see S16:182 | ||
synopsebot | Link: perlcabal.org/syn/S16.html#line_182 | ||
jnthn | Yeah, that's my guess. Hairy but possible. | ||
TimToady | so the concept of $*CWD is in the specs, if a bit handwavey | ||
donaldh | so should chdir modify the nqp equivalent of $^CWD and nothing more. | 22:05 | |
should the nqp runtime not in fact move itself around directories on _any_ of the backends? | 22:06 | ||
s/move/teleport/ | |||
TimToady | maybe &PROCESS::chdir is the real one | 22:07 | |
donaldh | and that's just non-existent on JVM ? | ||
TimToady | right | ||
or just sets $*CWD for every interpreter running under it somehow | 22:08 | ||
22:08
BenGoldberg left
|
|||
TimToady | seems not very useful though | 22:08 | |
donaldh | Will need some kind of solution for panda. Alternatively refactor panda to not require chdir | 22:09 | |
22:10
bluescreen100 left
|
|||
TimToady | maybe there's some policy that an interpreter's top-level $*CWD just tracks $PROCESS::CWD, so any single layer of chdir will tend to do the expected thing | 22:11 | |
or maybe that just falls out of it already, since * vars already search GLOBAL and then PROCESS | 22:12 | ||
you'd only get into trouble if a dynamic chdir expects that to propagate back into its caller | |||
jnthn | TimToady: Should Buf support push/pop/shift/unshift? | ||
Rakudo's today doesn't... | 22:13 | ||
Don't see anything in the spec saying one way or t'other :) | |||
22:13
lue joined
|
|||
donaldh will look into nio after the weekend hopefully | 22:14 | ||
TimToady | I dunno, most of that sort of stuff you'd do in the stringy realm | ||
concat bufs and such | |||
jnthn | *nod* | ||
Well, can add it later if somebody sees a need. | |||
TimToady | can always add 'em later if there's a good use case | ||
jnthn | hah | ||
TimToady | darn | 22:15 | |
donaldh | at least that race condition didn't corrupt irc | ||
22:15
jeffreykegler joined,
jeffreykegler left
22:17
jeffreykegler joined
|
|||
donaldh | 'night o/ | 22:17 | |
TimToady | well, irc was invented by Finns, who are good at racing and shooting while under the influence of vodka | ||
22:18
donaldh left,
BenGoldberg joined
22:19
colomon left
|
|||
jnthn | s/good .+ while// # also true if the Stockholm - Helsinki ferry is your sample :) | 22:19 | |
TimToady | :D | 22:20 | |
TimToady imagines racing gunboat ferries... | |||
maybe they'd have to be icebreakers if we're talking biathlon | 22:22 | ||
or iceboats | 22:23 | ||
the cannons could double for propulsion when the wind dies down | 22:24 | ||
22:27
colomon joined
|
|||
jnthn | Racing icebreakers! | 22:28 | |
colomon | www.themackinaw.org/ | 22:32 | |
22:32
skids joined
|
|||
colomon is embarrassed that it took him a minute to find via google because he thought it was Canadian. Ah, life on the border... | 22:33 | ||
lue | rpn: say "ß".uc | 22:35 | |
camelia | rakudo 45d447, niecza v24-88-g1f87209, pugs: OUTPUT«ß» | ||
lue | rpn: say "ẞ".lc.uc | ||
camelia | pugs: OUTPUT«ß» | ||
..rakudo 45d447: OUTPUT«SS» | |||
..niecza v24-88-g1f87209: OUTPUT«ẞ» | |||
lue | .oO(niecza's the only one that ever got it right) |
||
colomon | actually, I believe niecza's wrong there | 22:37 | |
rpn: say "ẞ".lc | 22:38 | ||
camelia | niecza v24-88-g1f87209: OUTPUT«ẞ» | ||
..rakudo 45d447, pugs: OUTPUT«ß» | |||
colomon | or maybe not. | ||
.u ẞ | |||
is that an upper-case ß ? | |||
lue | colomon: yes | 22:39 | |
.u ẞ | |||
colomon | niecza has that .lc wrong, then, doesn't it? | ||
lue | (your ß's are white-on-black somehow) | ||
colomon | weird, I'm just cutting and pasting | ||
lue | yes. ẞ.lc should be ß [ and ß.uc should be ẞ IMO :) ] | 22:40 | |
I'm actually more concerned about rakudo's inconsistent handling of ß | 22:41 | ||
colomon | no, that's right | 22:42 | |
lue | r: my $a = "ẞ"; $a .= lc; say $a; $a .= uc; say $a; | ||
camelia | rakudo 45d447: OUTPUT«ßSS» | ||
colomon | ẞ is not the standard upper case of ß | ||
lue | r: my $a = "ß"; $a .= uc; say $a; | ||
camelia | rakudo 45d447: OUTPUT«ß» | ||
lue | If I come from ẞ, then .lc.uc converts (improperly to me) to SS. Starting with ß and doing .uc however does nothing. | 22:43 | |
colomon: it may not be standard but (I think) it's better :) | |||
colomon | your opinion does not matter to the Unicode people, alas. | ||
lue has the relatively more sound argument of "if I convert ß to uppercase and then lowercase again it's ss, which is blatant information loss." | 22:45 | ||
colomon | though the two different behaviors thing is a bit odd | ||
that would be why you don't uppercase and then lowercase. If you want lowercase, you just call lowercase directly. | |||
that's why having a titlecase function is important | 22:46 | ||
lue | Like I said, my preferences aside, I'm concerned about rakudo's inconsistency there. | 22:47 | |
colomon | rn: say "ß".ord; say "ẞ".lc.ord | 22:48 | |
camelia | rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«22322» | ||
colomon | errr… 22? | 22:49 | |
lue | rn: say "ß".ord; say "ẞ".lc.ord | ||
jnthn | colomon: looks like you may have pasted a control char | ||
camelia | niecza v24-88-g1f87209: OUTPUT«2237838» | ||
..rakudo 45d447: OUTPUT«223223» | |||
lue | rn: say "ß".ord; say "ẞ".lc | ||
camelia | niecza v24-88-g1f87209: OUTPUT«223ẞ» | ||
..rakudo 45d447: OUTPUT«223ß» | |||
lue files rakudobug on inconsistency | 22:51 | ||
timotimo | i'm worried about the mass amount of $*W.add_constant and .compile_time_value that's going on in Perl6/Pod.nqp | ||
not simply because i feel uneasy trying to modify a block configuration after it fell out of make_config, because it was serialize_object'd and it is made of a list of Pairs whose .key and .value have both been $*W.add_constant'd, too ... | 22:52 | ||
but also because i think this all ought to be possible without the mass amounts of manual serialization work | 22:53 | ||
22:53
Moukeddar left
|
|||
timotimo | shouldn't i be able to just put an $*W.add_constant at the very top and it would serialize everything inside properly? | 22:56 | |
and doesn't $*W.add_constant(foo bar).compile_time_value lose the reference to the object that's now stored in the world/SC? | 22:57 | ||
jnthn | Don't think so | 22:58 | |
Shouldn't; the object is now in the SC | |||
timotimo | OK | 23:02 | |
what about the rest? | |||
dalek | ast: 43db15c | (Solomon Foster)++ | S32-str/sprintf.t: Test FatRat with %d. |
23:03 | |
colomon | rn: say sprintf("%30s", 3.1.FatRat ** 27) | 23:04 | |
camelia | rakudo 45d447, niecza v24-88-g1f87209: OUTPUT«18482713582824.035358817658752815923791711» | ||
colomon | rn: say sprintf("%50s", 3.1.FatRat ** 27) | ||
camelia | rakudo 45d447, niecza v24-88-g1f87209: OUTPUT« 18482713582824.035358817658752815923791711» | ||
timotimo | jnthn: but i will still have to add all the objects down to the last little Int or Str? | 23:05 | |
and there's probably no way to "remove" such an object properly from the serialization context if i make changes? | |||
jnthn | timotimo: You only need to add an object if you want a QAST::WVal reference to it. | 23:06 | |
timotimo: If you want a complex data structure and just to refer to the top of it, then you can just add the top level object and let the serializer walk it. | |||
timotimo | ah! | ||
that's perfect! | |||
i shall rewrite a big part of the Pod.nqp then :) | |||
jnthn | I think that serialization stuff didn't exist when tadzik++ first did Pod.nqp. | ||
timotimo | that would make sense | 23:07 | |
23:09
vk_ left
|
|||
tadzik | it was still A LOT better than pre-nom :) | 23:10 | |
dalek | kudo/rebuf: 6ab6d8d | jnthn++ | src/ (2 files): Add Blob, blob8 etc., utf8 etc. The utf8 type doesn't work yet, due to missing REPR data serialization in VMArray. |
||
jnthn | tadzik: For certain :) | 23:11 | |
tadzik: I'm not sure it woulda been possible pre-nom :) | |||
OK, tomorrow I work on encode/decode for the new buf stuff, and look at putting back the ops | 23:12 | ||
tadzik | jnthn: well, the plan for pre-nom was to build PAST that'll generate objects in runtime... ;) | 23:15 | |
jnthn | tadzik: eeek :) | 23:16 | |
tadzik | it's actually more like ;o than ;) | ||
23:16
grondilu joined,
grondilu left,
grondilu joined
|
|||
jnthn | Yes, Rakudo's architectur these days makes such things a LOT easier than pre-nom. | 23:16 | |
tadzik | aye | 23:18 | |
timotimo | i can only imagine :) | 23:20 | |
jnthn pours himself a trashy blonde | 23:22 | ||
tadzik resits a plushy blonde joke | 23:23 | ||
"tours himself" wouldn't sound right anyway ;) | |||
23:23
colomon left
|
|||
jnthn | TimToady: Hm, now Buf ~~ Blob, I realized I've got a subbuf method in Blob... | 23:24 | |
TimToady: Should subblob be in there, and subbuf in Buf and it gets subblob too? | 23:25 | ||
tadzik | time to geet some proper sleeps. Gnight #perl61 | 23:26 | |
perl6! even | |||
timotimo | there is no real reason to use add_constant($the_type, 'type_new', ...) if i have the object already, right? $*W.add_object should make more sense, no? | ||
jnthn | 'night, tadzik | ||
Aye | 23:27 | ||
timotimo | good night tadzik! | ||
i had a visitor to my hackspace today who wore a yapc::eu perl5 shirt | 23:31 | ||
i told him a bit more about perl6's current status and he built a rakudo.jvm now | 23:32 | ||
jnthn | nice :) | 23:33 | |
timotimo | i'm not sure i made clear to him how objectively far along rakudo is nowadays | 23:37 | |
wow, it still works. that was way too easy. | 23:40 | ||
time for a real stress test. | |||
invoke() not implemented in class 'NQPMu' - yeah, that's where my luck ends | |||
turns out when you remove a method and call that removed method from somewhere else, that doesn't work very well | 23:45 | ||
23:45
jeffreykegler left
23:57
Rotwang left
|