»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
timotimo | oooh we're getting a working YAML parser for perl6 finally? | 00:02 | |
00:03
lizmat left
|
|||
timotimo | .tell lizmat i'd have to actually measure what the overhead of actually "generated" accessors would be; it'd have an impact on the core setting file on disk and the ram of a running program (plus having speshes for each individual instance of accessors etc etc) | 00:06 | |
yoleaux | timotimo: I'll pass your message to lizmat. | ||
timotimo | on the other hand, that may allow us to inline checks from where clauses etc? | ||
00:10
dayangkun joined
00:37
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:39
Zoffix joined
00:42
nbdsp joined
00:47
leont joined
00:51
colomon left
00:56
leont left
00:58
nbdsp left
01:00
silug joined,
dayangkun left
01:01
dayangkun joined
01:09
laouji joined
01:10
gcole left
01:13
laouji left
01:15
grondilu left
01:28
Sibin joined,
Sibin left
01:45
dolmen joined
01:51
colomon joined
01:54
aborazmeh left
02:03
chenryn joined
02:05
noganex_ joined
02:08
noganex left
02:10
laouji joined
02:14
laouji left
02:15
colomon left
02:23
nbdsp joined
02:30
quester joined
02:34
quester is now known as quester_
02:35
quester_ left,
quester_ joined,
quester_ is now known as quester
03:08
Gothmog_ left,
Gothmog_ joined
03:42
aborazmeh joined,
aborazmeh left,
aborazmeh joined
03:52
BenGoldberg left
03:55
laouji joined
04:00
jack_rabbit left
04:02
konsolebox joined
04:03
jack_rabbit joined
04:09
chenryn left
04:31
chenryn joined
04:34
laouji left,
_1_shuklaatul joined
04:35
kaare_ joined
|
|||
_1_shuklaatul | ?? | 04:36 | |
TimToady | !! | 04:37 | |
raydiak | .. | ||
04:39
aborazmeh left,
_1_shuklaatul left
|
|||
quester | Is it just me, or does "Unsupported serialization format version 12 (current version is 15)" seems like an LTA message to say that some module... | 04:42 | |
... not named in the error message, needs to recompiled into mbc? | |||
04:43
beastd left
|
|||
quester | If anyone else has run into this, a quick and very dirty fix is: find . -type f -iname '*.pm' | while read line; do echo $line; perl6 --target=mbc --output=$line.moarvm $line; done | 04:44 | |
... and repeat as needed if the .pm's involved use each other. | 04:45 | ||
04:50
lolisa joined
|
|||
quester | ... and you may need to do the same thing for .pm6 files as well. | 04:55 | |
04:57
diana_olhovik_ joined
05:04
cschwenz joined,
diana_olhovik_ left,
FROGGS[mobile] left
|
|||
cschwenz | .botsnack | 05:04 | |
yoleaux | :D | ||
05:05
lolisa left
|
|||
quester | (afk) | 05:06 | |
05:07
laouji joined
05:09
spider-mario left
05:10
cschwenz is now known as cschwenz_,
cschwenz_ is now known as cschwenz1,
cschwenz1 is now known as cschwenz
05:11
spider-mario joined,
cschwenz left
05:53
anaeem1_ joined
|
|||
nine | .tell nbdsp you can set dbh attributes using the 4th argument to connect: DBI.connect('dbi:mysql:database=testDB;host=localhost;port=3306', 'user', 'password', {mysql_enable_utf8 => 1}); | 05:53 | |
yoleaux | nine: I'll pass your message to nbdsp. | ||
jnthn | morning, #perl6 | 05:55 | |
yoleaux | 19 Apr 2015 19:33Z <FROGGS> jnthn: after successfully bootstrapping panda I try to install a dist, and then it explodes when serializing a null object: gist.github.com/FROGGS/c6d637b32e4665ec3882 | ||
19 Apr 2015 19:35Z <FROGGS> jnthn: I believe this object is a string, the absolute path to the panda script that is currently running (aka $*EXECUTABLE)... is there something I need to take care of? | |||
19 Apr 2015 19:39Z <FROGGS> jnthn: I pushed to rakudo/jsoff in case you are curious | |||
nine | .tell lizmat actually, my patch to perl for use v6; support doesn't even require Inline::Perl6. It works as long as you have some perl6 binary in your $PATH | 05:56 | |
yoleaux | nine: I'll pass your message to lizmat. | ||
05:57
diana_olhovik_ joined
|
|||
jnthn | .tell FROGGS I'm curious how you ended up with a real NULL in the objects to serialize list... | 05:57 | |
yoleaux | jnthn: I'll pass your message to FROGGS. | ||
jnthn | .tell FROGGS Something seems a bit off there. Can't immediately tell what. | 05:58 | |
yoleaux | jnthn: I'll pass your message to FROGGS. | ||
nbdsp | nine: that worked! thanks! | ||
yoleaux | 05:53Z <nine> nbdsp: you can set dbh attributes using the 4th argument to connect: DBI.connect('dbi:mysql:database=testDB;host=localhost;port=3306', 'user', 'password', {mysql_enable_utf8 => 1}); | ||
06:13
mr-foobar left
06:22
KimmoNO left
06:23
FROGGS left
06:25
brrt joined
06:33
yvan1 left
06:38
_mg_ joined
06:39
spider-mario left
06:41
virtualsue joined
|
|||
brrt | \o | 06:42 | |
just here to point you all to my hague grant application at tpf: news.perlfoundation.org/2015/04/per...ation.html | 06:43 | ||
please be just as critical as you like :-) | |||
jnthn | \o/ | 06:45 | |
06:45
bjz joined
06:47
laouji left
06:48
FROGGS joined
06:50
laouji joined
|
|||
FROGGS | .schnickschnack | 06:53 | |
yoleaux | 05:57Z <jnthn> FROGGS: I'm curious how you ended up with a real NULL in the objects to serialize list... | ||
05:58Z <jnthn> FROGGS: Something seems a bit off there. Can't immediately tell what. | |||
moritz | brrt: the example you mentioned seems to be missing | 06:57 | |
brrt | oh, yes | ||
the links are missing | |||
moritz | glad it's not just me :-) | ||
brrt | gist.github.com/bdw/fef76ca07b7203e49fc2 is the example | ||
dunno if you are familiar / comfortable with at&t syntax | 06:58 | ||
and to be really clear about it, this is a *highly artificial* example | 06:59 | ||
real code will not see such benefits | |||
06:59
dolmen left
|
|||
brrt | unless we attack other parts of the stack as well | 06:59 | |
07:00
MARTIMM joined
|
|||
moritz | well, that's the nature of optimizations | 07:00 | |
07:00
laouji left
07:01
zakharyas joined,
Ven joined
07:04
abraxxa joined
|
|||
brrt | sure. i just don't want anybody thinking we'll get a 5x speedup for free :-) | 07:05 | |
moritz | not free, it'll cost us 10k :-) | 07:06 | |
07:06
lizmat joined,
bjz left
|
|||
moritz | and yes, I know I know, just fooling around | 07:06 | |
brrt | :-D | 07:09 | |
07:10
laouji joined
|
|||
masak | morning, #perl6 | 07:10 | |
moritz | \o masak | ||
brrt | \o masak | 07:11 | |
jnthn | o/ FROGGS, moritz, masak, lizmat :) | 07:12 | |
lizmat | good morning, jnthn ! | ||
yoleaux | 00:06Z <timotimo> lizmat: i'd have to actually measure what the overhead of actually "generated" accessors would be; it'd have an impact on the core setting file on disk and the ram of a running program (plus having speshes for each individual instance of accessors etc etc) | ||
05:56Z <nine> lizmat: actually, my patch to perl for use v6; support doesn't even require Inline::Perl6. It works as long as you have some perl6 binary in your $PATH | |||
FROGGS | morning @all | 07:13 | |
El_Che | the elfs are working hard to make christmas possible! :) | 07:14 | |
07:19
alini left
07:20
lizmat left
|
|||
masak is so confused, because in Scandinavia there are no elfs, only small clones of Santa | 07:21 | ||
07:21
lizmat joined,
lizmat left,
lizmat joined
|
|||
lizmat | brrt++ # Hague Grant Application | 07:22 | |
brrt | thanks :-) | ||
moritz | masak: and trolls! | ||
07:22
RabidGravy joined
|
|||
brrt | but a scandinavian troll is not the same as an internet troll... or is it | 07:22 | |
masak | moritz: Scandinavia had trolls before it was cool. :P | 07:23 | |
07:26
Rounin joined
07:28
quester left,
jack_rabbit left
|
|||
lizmat | M: nqp::say("foo") | 07:30 | |
m: nqp::say("foo") | |||
camelia | rakudo-moar 4ba4aa: OUTPUT«===============================================================================The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp:…» | ||
lizmat | m: use nqp; nqp::say("foo") | ||
camelia | rakudo-moar 4ba4aa: OUTPUT«foo» | ||
moritz | lizmat++ | ||
jnthn | lizmat: Hmm, I'd say it's only deprecated without using "use nqp;" | 07:31 | |
Ven | o/, @*peeps | ||
lizmat | m: use nqp; nqp::say("foo"); { no nqp; nqp::say("bar") }; nqp::say"baz" | ||
camelia | rakudo-moar 4ba4aa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9T27cQDIitTwo terms in a rowat /tmp/9T27cQDIit:1------> 3); { no nqp; nqp::say("bar") }; nqp::say7⏏5"baz" expecting any of: infix infix stopper statement end…» | ||
lizmat | m: use nqp; nqp::say("foo"); { no nqp; nqp::say("bar") }; nqp::say("baz") | ||
camelia | rakudo-moar 4ba4aa: OUTPUT«===============================================================================The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp:…» | ||
lizmat | jnthn: it is | 07:32 | |
jnthn++ # lexical pragma's framework | |||
BTW, *all* the pragmas now also work with -M | 07:33 | ||
jnthn | lizmat: No, I more meant that I'd phrase it not as "deprecated for non-CORE code" but "deprecated without 'use nqp;'" | 07:34 | |
lizmat: Yes, I saw :) | |||
07:34
rurban_ joined
|
|||
brrt | i wonder if we can add tracing without a very significant runtime cost.... | 07:34 | |
... we can | 07:35 | ||
but it is more evil than you might imagine | |||
(at least if you have CGOTO's) | |||
lizmat | jnthn: I'll gladly leave the phrasing of the message to the bikeshedding team :-) | ||
brrt: looking forward to seeing that evilness in action ;-) | 07:36 | ||
jnthn | We can't rely on CGOTO, alas. | ||
I'd more been thinking of using the specialization framework to produce a trace-recording version of the code. | 07:37 | ||
brrt | the evilness was replacing the cgoto table to a version that added trace by the way :-). that would be relatively cheap | 07:38 | |
i have no quick idea on how to let spesh do it though | |||
07:38
cschwenz joined
|
|||
brrt | but i'm afk for now :-) | 07:38 | |
07:38
brrt left
07:39
zeleiadi joined
07:40
renormalist joined,
jack_rabbit joined
|
|||
arnsholt | Object modeling musing: Does it make sense to have a role that can only be mixed into subtypes of a particular class? | 07:41 | |
jnthn | arnsholt: What makes it only possible to mix it into subtypes of a particular class? | 07:42 | |
moritz | that would have been my question too :-) | ||
arnsholt | Assuming things about stuff the mixed-into type can do | ||
moritz | arnsholt: the usual approach is more that require a certain role (instead of a subclass) | ||
s/that/to/ | |||
arnsholt | Basically, this comes from stuff I'm doing at $work ATM (in Python) | ||
dalek | kudo/nom: a96118d | labster++ | src/core/ (2 files): move methods from Cool.pm to Str.pm: <codes chars uc lc tc tclc ord flip> Boost performance on all of these functions by ~25% when performed on a Str object; roughly unchanged performance on other Cool types. |
07:43 | |
jnthn | arnsholt: You could express those as requirements. | ||
(in the role) | |||
moritz | with perl 6 roles, if role R depends on stuff from type A, make A a role too, and have R do A | ||
jnthn | Or what moritz said. | ||
arnsholt | Yeah, that probably makes more sense | ||
moritz | labster++ | ||
arnsholt | Of course, Python doesn't have roles, so it's all classes | 07:44 | |
07:45
yvan1 joined
|
|||
arnsholt | What I have is more or less this: A hierarchy of Tool-subclasses, doing various things. And a collection of tools that are weird and idiosyncratic. So I have a utility class for those problematic tools that I inherit from, as well as the relevant Tool subclass | 07:46 | |
labster | Yeah, I thought that boosting the performance might have something to do with the unboxing op, but it didn't seem so useful on other Str functions... maybe I'm just giving the dispatcher stronger hints. | ||
jnthn | labster: You are quite possibly also bringing things below the size limit for inlining. | ||
arnsholt | In Python it's just normal multiple inheritance, but it feels sort of like a role, but of course the utility class assumes that downstream classes also inherit from Tool | ||
jnthn | labster: Which both the JVM and MoarVM can perform. | 07:47 | |
labster | Yeah, I had read about it in JVM, cool to know that Moar can pull the same trick. | ||
07:53
jack_rabbit left
|
|||
jnthn | In NFG news, I just got my 500 "code points -> NFG string -> code points" tests passing. :) | 07:56 | |
moritz | \o/ | ||
07:58
rindolf joined
|
|||
labster | jnthn++ | 08:00 | |
08:00
nbdsp left
|
|||
Ven | jnthn++ :) | 08:04 | |
08:06
zjmarlow joined
|
|||
sjn | sweet! | 08:09 | |
08:10
alini joined
08:14
darutoko joined
|
|||
FROGGS | jnthn++ # \o/ | 08:16 | |
08:20
virtualsue left
08:22
bjz joined
08:23
andreoss joined
08:24
andreoss left,
andreoss joined
08:26
bjz left
|
|||
dalek | ast: c9d683a | jnthn++ | S15-nfg/test-gen.p6: Script to generate some mass NFG tests. We look through the Unicode Normalization Tests for cases where the NFC form contains non-starters, giving us some good candidates for NFG tests. We then generate tests checking we get the correct results for .chars, and that we can get back from NFG to codepoints. Mostly we will be going to NFC, so we generate more tests for that, but produce 100 each for the other forms too just to quickly sanity test them. |
08:27 | |
ast: 27b17e3 | jnthn++ | S15-nfg/mass- (5 files): Add a bunch of NFG tests. Generated from the Unicode NormalizationTests.txt. They are emitted in numbers that make them suitable for inclusion in a normal spectest run rather than being stress tests. |
08:29 | ||
masak is teaching Angular today | 08:31 | ||
dalek | p: f4f7adc | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for latest NFG bits. |
||
jnthn | masak: Have fun :) | ||
masak | Angular is a lot like Perl 6. reckless, dangerous, self-consciously ugly, and "it's the magic that counts". | ||
or, should I say, Perl in general. | |||
moritz | shouldn't it be called "Polar"? :-) | ||
masak | not sure I see why it should | 08:32 | |
the name refers to the <> things in HTML tags. | |||
moritz has been thinking in coordinate systems | |||
masak | ooh, and then you could have a web framework called Cartesian | ||
and then someone unites Cartesian and Polar, and makes Cylindrical | 08:33 | ||
and then someone somehow unites Polar with itself, and makes Toroidal | |||
:P | |||
nwc10 | I can see a hole in that. | ||
moritz | and then Randall Munroe steps in, and starts to make map projection javascript frameworks :-) | 08:34 | |
dalek | kudo/nom: 3ac5c31 | jnthn++ | src/core/Uni.pm: Add Str method to Uni. Goes from a Uni (code point level) to an NFG string (soon!) |
||
kudo/nom: 44daca2 | jnthn++ | src/core/Str.pm: Implement Str.[NFC|NFD|NFKC|NFKD]. |
|||
kudo/nom: 81fe3c3 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for Moar NFG bits so far. Certainly we're not all the way on NFG, but enough to pass a bunch of tests, and it's nice to get others running them for wider testing. |
|||
masak | nwc10: the best thing algebraic topology has done for me is to give me not just a normal intuition of what a hole is in a space, but also a *mathematical* intuition. | 08:35 | |
nwc10: my dad can't explain how the universe can have a "shape" if there's no (observable) "outside". but with enough mathematical background it's clear to me, even if I can't explain it to him. | 08:38 | ||
08:40
Rounin left
|
|||
dalek | kudo/nom: 5cfddf5 | jnthn++ | t/spectest.data: Run a bunch of NFG spectests on Moar. These all should pass with the work done so far. |
08:42 | |
08:42
rarara joined
08:45
Rounin joined
08:52
skids left
|
|||
moritz | masak: re shape of the Universe, it reminds me of something a professor once said in a lecture... | 08:52 | |
masak: it was about the question where the Big Bang happened | |||
masak: and the answer was that there are two equally valid models to think of the Universe expanding | |||
think of an expanding baloon | 08:53 | ||
DrForr | The entire *universe* is running away from me... | ||
08:53
risou is now known as risou_awy
|
|||
moritz | and the first way of thinking is to equate the Universe with the baloon; so the Big Bang was everywhere that the Universe is now | 08:53 | |
08:53
risou_awy is now known as risou
|
|||
moritz | and the second way of think is to equate the Universe with the *surface* of that balooon | 08:54 | |
and in that way of thinking, the Big Bang happened somewhere that's not even in the current Universe right now :-) | |||
08:54
bjz joined,
[TuxCM] joined
|
|||
masak | moritz: I'd heard the expanding balloon metaphor before, but I think I'd only heard it in the latter sense, with the universe being the surface. | 08:58 | |
moritz: my point is that, even if we restrict the universe to being just the surface, it's entirely possible to define things such as "positive curvature" without ever needing to refer to things that are not the surface. | 08:59 | ||
lizmat goes sightseeing and is looking forward to testing all the new good stuff late tonight | |||
& | |||
08:59
lizmat left
|
|||
moritz | masak: right; just the way that angles add up in a triangle is enough to observe curvature | 08:59 | |
masak | right; and the behavior of parallel lines. | 09:00 | |
moritz | aye | ||
DrForr | In your *face*, Euclid. | 09:01 | |
masak .oO( in your *edge*, Euclid. in your *vertex*, Euclid. ) | 09:02 | ||
DrForr | masak+=-(-2) | 09:03 | |
masak | I'm still struggling a bit with the concept of homology, to be honest. | 09:04 | |
and don't even get me started on cohomology. | |||
09:05
espadrine joined
|
|||
RabidGravy | while we're on the subject of euclid, what would be a good character for an operator for gist.github.com/jonathanstowe/ff08...1b39aeebed ? | 09:07 | |
i.e. $somelistything = $slots <somechar> $fills | 09:08 | ||
moritz | erm, sorry, what does it do? | ||
DrForr | Well, the paper just uses E(x,y)... | 09:10 | |
RabidGravy | if e.g. slots is 16 and fills is five it makes 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 | ||
my interest in it is for generating rhythmic pulse for musics | 09:11 | ||
moritz | well, we use x for repeating | ||
so $x x<mumble> $y | |||
and if it's about intervals, maybe xi ? | 09:12 | ||
or more 'x devided by y intervals', xd ? | |||
DrForr | $x x. $y # at least going by the results, though it'd be almost impossible to pick out in text. | ||
moritz | or x/ | ||
or x% | |||
RabidGravy | yeah x% is visually distinct, cheers | 09:15 | |
09:17
Ven left
09:19
zeleiadi left
09:23
andreoss` joined
|
|||
rarara | Are grammars normal objects? Is it possible to override parse() ? | 09:26 | |
moritz | rarara: yes and yes | ||
rarara: a grammar is just a class that also inherits from class Grammar | 09:27 | ||
m: grammar G { }; say G.^mro | |||
camelia | rakudo-moar 5cfddf: OUTPUT«(G) (Grammar) (Cursor) (Any) (Mu)» | ||
09:27
andreoss left
|
|||
rarara | ah ok, I just made my first perl6 grammar: a fastq format parser. Would like to try to see if it would be feasible to use it to parse files which only "mostly" parsable | 09:29 | |
sergot | hi #perl6 \o | 09:31 | |
FROGGS | hi sergot | 09:33 | |
rarara | but subparse seems useful enough | 09:34 | |
09:35
rurban_ left
|
|||
rarara | How do you iterate on a parse tree in a perl 6 grammar parse output? | 09:41 | |
09:43
cschwenz left,
cschwenz joined
|
|||
ingy | anyone know if tadzik is in Berlin still today? | 09:44 | |
FROGGS | rarara: depends... yuo either want to use actions of loops | ||
bbiab | |||
09:47
cschwenz left
|
|||
rarara | Actions, right | 09:47 | |
09:53
Ven joined
|
|||
nine | ingy: I think I remember him saying that he'll go home this evening | 09:55 | |
rarara | There is some thing which is confusing me in the documentation. | ||
From class grammar: If the action named argument is provided, it will be used as an action object, that is, for each successful regex match, a method of the same name (if it exists) is called on the action object, passing the match object as the sole positional argument. | |||
then there is the "made" method which let you get the result of action | 09:56 | ||
why would this method be needed? | |||
10:00
brrt joined,
MARTIMM left
|
|||
rarara | I guess it would be possible to define a Grammar class which doesn't automagically store anything useless in memory | 10:00 | |
nine | .tell brrt What I would like to see in your grant proposal is some indication to the maintainability of your proposed new code. What would it take for someone to take over maintenance, should you lose interest? | 10:01 | |
yoleaux | nine: I'll pass your message to brrt. | ||
nine | rarara: it is not needed. It is merely convenient. | 10:02 | |
brrt | \o | ||
yoleaux | 10:01Z <nine> brrt: What I would like to see in your grant proposal is some indication to the maintainability of your proposed new code. What would it take for someone to take over maintenance, should you lose interest? | ||
brrt | nine, that is a good question. i'm afraid i can't ask karen to change the proposal, so i'll answer here | ||
in very general terms i *think* this should make it somewhat more maintainable | 10:03 | ||
as more of the work of the JIT will shift to higher-level constructs | |||
and i've found that there are not so many people willing and happy to dig into x86_64 assembly, which is the current form of much of the JIT code | 10:04 | ||
that said, the JIT will become more complex | |||
jnthn notes that at least two people besides brrt++ have worked on JIT code that was implemented last summer. | |||
brrt | that is very true | ||
jnthn | That probably gives it a higher bus number than some other bits of the VM. | ||
brrt | also true :-) | 10:05 | |
nine | So maintainability of the current code is ok and your proposed changes would even improve that. Maybe you can put this in a comment on the proposal news? | ||
brrt | i can, or don't you mean me? | 10:06 | |
nine | brrt: I do mean you | ||
brrt | it can definitively be improved though :-) but i'll do that | 10:07 | |
nine | What jnthn said is probably good community input | ||
10:07
donaldh joined
|
|||
jnthn will write a more general comment on the post at some point sonish :) | 10:08 | ||
*soonish | |||
brrt | thanks :-) | 10:09 | |
and i'd note that maintainability also depends crucially on subjective-quality-of-code | |||
jnthn | Well, there's also the matter of necesary complexity. | 10:12 | |
10:14
diana_olhovik_ left
|
|||
brrt | true. and this does and will increase | 10:15 | |
uh, that wasn't grammatical | 10:17 | ||
10:22
dayangkun left
10:23
diana_olhovik_ joined
|
|||
jnthn | Your grammar is and will improve :P | 10:23 | |
10:23
alini left
10:26
[TuxCM] left
|
|||
Ven only looked at the JIT code during apw14, but didn't touch it... | 10:26 | ||
brrt | aw, that makes me feel sorry i couldn't be there | 10:27 | |
i'd have loved to talk about it | |||
Ven | brrt: I tried to help timotimo fix a bug, but most of it flew over my head :-). bug turned out to be storing floats in the wrong register, IIRC | 10:29 | |
FROGGS | jnthn: serialization question... if I serialize a single object be calling scsetobj($sc, 0, $obj), why are there more than object in the SC when deserializing it? | 10:30 | |
brrt | well, that's where i could help and explain. x86_64 isn't really very difficult, or at least not as difficult as it's made out to be | 10:31 | |
certainly not as difficult as 32 bit x86 | |||
10:33
alini joined
|
|||
jnthn | FROGGS: Because the SC ends up containing all the objects transitively found from those that you add | 10:33 | |
FROGGS: Excluding those that already belong to a different SC. | |||
nine | Is there a way to hook into serialization/deserialization of my module so I can for example replace CPointers on serialization and restore them on deserialization? | ||
10:35
lolisa joined,
PZt joined,
_mg_ left
|
|||
brrt | nine - if you mean the moarvm-native serialization, i don't think so, no | 10:35 | |
jnthn | nine: Not really, though if you write code in a CHECK phaser you are not long before serialization and in an INIT one not long after. | 10:36 | |
uh, not long after deserialization in the second one. | |||
brrt | what is the CHECK phaser? :-o | ||
jnthn | Runs at the end of compilation, but before the optimizer gets its hands on the code | ||
10:37
sqirrel joined
10:39
chenryn left
|
|||
nine | jnthn: would this work for fixing precomp issues? | 10:39 | |
10:40
telex left
|
|||
nine | And how can I detect if we're precompiling? INIT and CHECK will run as part of normal control flow, too. | 10:40 | |
nwc10 | is there a difference? | 10:41 | |
FROGGS | jnthn: but it should be safe just to put out the object in slot 0 ? | ||
jnthn | FROGGS: Yes | ||
FROGGS | k | ||
nwc10 | by which I mean, does Rakudo purposefully attempt to make it ireelevant whether compilation is happening for "right now" or "going to disk for later" | ||
jnthn | nwc10: Yes, pretty much | 10:42 | |
Only a handful of places burried in Perl6::World really care. | |||
Well, and in HLL:Compiler so it knows not to run stuff, but write it to disk | |||
10:42
telex joined
|
|||
jnthn | nine: If you're writing a module, then you may as well assume that is the case. | 10:42 | |
nine | Inline::Perl5 and really any module that touches external state during BEGIN needs to care, too. | 10:43 | |
jnthn | nine: Becuase most of the time it will have been installed and tus pre-compiled. | ||
So I'd just always assume it's happening; at most you may do a little extra work when it doesn't. | |||
10:44
brrt left
|
|||
nine | jnthn: the extra work may be not so little. During precomp I have to record all the calls to perl5. After deserialization I have to initialize Perl 5 again and replay this log. And I may call PERL_SYS_INIT only once per process so I have to know if I already created a perl5 interpreter before in this process. | 10:46 | |
jnthn | nine: Hmm...but hang on, is this about precomp of Inline::Perl5 itself, or things *using* Inline::Perl5? | 10:47 | |
10:48
rurban joined
|
|||
nine | jnthn: the latter | 10:49 | |
jnthn: precomp of a module that does for example use DBI:from<Perl5>; That creates an Inline::Perl5 (containing a CPointer) object and stores it in a package variable. | 10:50 | ||
FROGGS | Date::Holidays::DE::holidays(): Date::Calc::Easter_Sunday(): year out of range at ... | ||
grrrr! | |||
what bloody value is out of range? | |||
jnthn | nine: Ah. That's a rather different question... | ||
FROGGS | it had been helpful if it has told me that 'undef' is pretty much out of range | 10:51 | |
nine | jnthn: I'm all ears for ideas :) | 10:56 | |
11:02
sqirrel left
11:05
pdcawley joined
|
|||
nine | Python people discussion adding multiplicity and maybe using it for multi-threading and the realization that they may have not broken enough to make Python 3 interesting: lwn.net/Articles/640179/ | 11:06 | |
And a link for those who do not yet have an LWN subscription (you really should get one!): lwn.net/SubscriberLink/640179/ab08329f0b138f48/ | |||
nwc10: ^^^ | 11:09 | ||
moritz | nine: iirc we've had that link here before | 11:12 | |
(maybe not LWN, but the mailing list where it was posted originally) | |||
dalek | pan style="color: #395be5">perl6-examples: bde7fe2 | paultcochrane++ | categories/cookbook/ (13 files): Add TITLE and AUTHOR to all cookbook examples |
||
perl6-examples: 1d00fd2 | paultcochrane++ | categories/games/ (3 files): | |||
perl6-examples: Add missing 'use v6' statements and vim codas to game examples | |||
11:12
dalek left
|
|||
[ptc] | now at least all perl6-examples are documented to a minimal extent | 11:13 | |
11:13
dalek joined,
ChanServ sets mode: +v dalek
11:14
chenryn joined
|
|||
jnthn | nine: Is it just about "use Foo:from<Perl5>" or are there other cases? | 11:15 | |
11:16
dayangkun joined
11:18
colomon joined,
mephinet joined
|
|||
nine | jnthn: that's certainly the most important use case. But I guess, modules will want to EVAL Perl 5 code during compilation to create some adaptors. | 11:18 | |
jnthn | nine: OK, I could imagine doing something with the first in the Perl 5 module loader somehow...the latter I've no idea how to do, especially given there may be references back to Perl 6 objects too... | 11:19 | |
nine | jnthn: references back to Perl 6 objects may not be that much of a problem because Perl 6 objects are referenced by an index into a purely Perl 6 array: github.com/niner/Inline-Perl5/blob...l5.pm6#L43 | 11:24 | |
jnthn | Ah, ok | 11:25 | |
11:25
dayangkun left
|
|||
dalek | ast: 12350f7 | jnthn++ | S15-nfg/ (2 files): Generate NFG string euqality tests. Again, using the Unicode normalization tests as the base. This time, we look for cases where there are two distinct non-starters, swap them around, and test for equality/inequality depending on if the two things we swapped have an identical Canonical_Combining_Class. |
11:31 | |
11:32
pdcawley left
11:33
pdcawley joined
11:34
_mg_ joined
11:41
colomon left
|
|||
andreoss` | m: my $rx = "\d\d6"; say (666 ~~ /$rx/).perl; | 11:43 | |
camelia | rakudo-moar 5cfddf: OUTPUT«5===SORRY!5===Unrecognized backslash sequence: '\d'at /tmp/tPFw3ioXjz:1------> 3my $rx = "\7⏏5d\d6"; say (666 ~~ /$rx/).perl;Unrecognized backslash sequence: '\d'at /tmp/tPFw3ioXjz:1------> 3my $rx = "\d\7⏏5d6"; say (666 ~~…» | ||
jnthn | Use single quotes there | 11:44 | |
Or some other non-backslash-interpreting quoting construct. | 11:45 | ||
andreoss` | still doesn't match | ||
moritz | /<$rx>/ | ||
jnthn | Sure | ||
'cus...what moritz said :) | |||
nwc10 | I don't remember reading a mail message with the content of that link before | 11:50 | |
andreoss` | regexes cannot be used as a hash key? | 11:52 | |
m: my $rx = /<\d>/; my %h; %h{$rx} = 1; say %h.perl; | |||
camelia | rakudo-moar 5cfddf: OUTPUT«5===SORRY!5===Unrecognized regex metacharacter < (must be quoted to match literally)at /tmp/0pnnZmxytF:1------> 3my $rx = /<7⏏5\d>/; my %h; %h{$rx} = 1; say %h.perl;Unrecognized regex metacharacter \ (must be quoted to match literally…» | ||
nine | nwc10: you talking about the lwn.net link? | ||
andreoss` | m: my $rx = /\d/; my %h; %h{$rx} = 1; say %h.perl; | ||
camelia | rakudo-moar 5cfddf: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/_6HULosYX5:1{"" => 1}<>» | ||
moritz | m: my $rx = /\d/; my %h{Any}; %h{$rx} = 1; | 11:53 | |
camelia | ( no output ) | ||
nwc10 | yes, the lwn.net link | ||
moritz | andreoss`: works if you declare the hash to be of type Any (or Regex, for that matter) | ||
andreoss`: though that approach seems to suggest that you're still think of regexes as glorified strings. They aren't. | |||
they are more like glorified methods | |||
11:54
anaeem1_ left
|
|||
nine | nwc10: that's an original lwn.net report about the Python Language Summit | 11:54 | |
nwc10 | "Guido van Rossum famously said that Python would never merge Stackless" - why? | ||
aha OK. Me, context, confused. | |||
clearly I'm not built for multiplicity | |||
nine | nwc10: "because it would complicate life for Jython, IronPython, PyPy, and others, Hastings said" futher down in the article | 11:55 | |
nwc10 | nine: thanks. Maybe I should stack my questions, and only ask the ones still unresolved at the end. :-) | ||
or, maybe I just make more coffee | |||
nine | I find the dlmopen suggestion interesting. At least because it would maybe allow Inline::Python to do what python cannot ;) | ||
nwc10 | I independantly thought about it a few days ago. In theory you can load more than one python interpreter (eg a 2 and a 3) | 11:56 | |
nine | nwc10: the whole coverage of the Python Language Summit is interesting to read. I can send you more subscriber links if you want | ||
nwc10 | but I think that you utteryl confuse any C-based extension | ||
because it has no idea which version it might find itself calling | |||
Gisle said you have the same problem with (at least) Win32 embedded thingies that want to embed Perl (5) | 11:57 | ||
and different thingies want to embed a different version | |||
nine: do the links become public access in a week or two? | |||
nine | nwc10: yes. Should become public this Thursday or Friday even. I'm currently catching up on the reading I postponed during the QA hackathon | 11:58 | |
11:59
Rounin left
|
|||
nwc10 | nine: I'd prefer to wait, rather than cheat. | 11:59 | |
12:00
brrt joined
|
|||
nwc10 is amused by | 12:00 | ||
Something compelling in python 2.7, however, is stability. I can write code in 2.7 and I am certain that I won't need to change it until 2020. Can the same thing be said for 3.4? Maybe not: docs.python.org/dev/whatsnew/3.5.h...deprecated | |||
nine | nwc10: it's not cheating. Subscriber links are an explicit feature provided to spread interesting articles to non-subscribers and maybe attract them to subscribe. | 12:01 | |
nwc10 had half joked a few months back that python *2* is an ideal business choice for starting something new, because no-one is going to change it under you | |||
nine | The "subscriber link" mechanism allows an LWN.net subscriber to generate a special URL for a subscription-only article. That URL can then be given to others, who will be able to access the article regardless of whether they are subscribed. This feature is made available as a service to LWN subscribers, and in the hope that they will use it to spread the word about their favorite LWN articles. If this feature is abused, it will hurt LWN' | 12:02 | |
nwc10: that's no joke anymore :) I've seen people call that an attractive feature | |||
nwc10 | this appears to be one such person: lwn.net/Articles/640534/ | 12:03 | |
nine | There are three versions of Python in use at this point: 2.6, 2.7, and everything else. Based on some Python Package Index (PyPI) data that he gathered (which was a few months old; he also admitted the methodology he used was far from perfect), Python 2.7 makes up the majority of the downloads, while 2.6 has a significant but far smaller chunk, as well. All the other Python versions together had a smaller slice than even 2.6. | ||
psch | \o | ||
psch wonders about RT #116280 | 12:04 | ||
moritz uses mostly python 3.4 at $work, though it's a pretty new project | 12:05 | ||
psch | specifically, if it can or should be solved by having Perl 6 level sprintf, because Perl 6 Ints should know Inf, and NQP currently misconverts Inf as BI | ||
but that's probably a bit backwards, as NQP sprintf should be able to deal properly with Inf as well | |||
nwc10 | nine: where's that "three versions" quote from? It doesn't seem to be that article | 12:09 | |
[ptc] | moritz: what's python 3 like to work with? I'm stuck with python 2 at $work currently | ||
nwc10 | nine: oh, google finds a link :-) | 12:10 | |
moritz | [ptc]: I don't know python 2 much, so I can't compare well | ||
[ptc] | ah, ok | ||
moritz | [ptc]: though a small part of the project must support both 2 and 3, and that's a pain (IMHO) | ||
[ptc] | moritz: I can imagine | 12:11 | |
moritz | writing six.u('foo') instead of 'foo' is quite annoying | ||
12:19
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
|
|||
dalek | osystem: 67e6c32 | (Jonathan Stowe)++ | META.list: Add Log::Syslog::Native |
12:19 | |
RabidGravy | totally shite but hey | 12:20 | |
psch, I was wonndering about sprintf last night. So now it's implemented only in nqp? | 12:26 | ||
12:26
chenryn left
|
|||
RabidGravy | specifically I was wondering whether there was a way to programmatically extend the format codes | 12:26 | |
psch | RabidGravy: nqp/src/HLL/sprintf.nqp is our implementatin | 12:27 | |
+o | |||
RabidGravy | right | 12:28 | |
RabidGravy looks | |||
psch | RabidGravy: as for the actual question, i don't think format codes are easily extendable currently | 12:32 | |
RabidGravy | yeah, that was my thought looking at it | 12:33 | |
but if the grammar and actions weren't private then it would be possible | 12:34 | ||
FROGGS | you can port it to Perl 6 of course... | 12:36 | |
RabidGravy | my actual rationale behind wanting to do this for example would be something like a log appender where you might want to add a '%H' say for hostname and %P for PID and so forth | 12:37 | |
of course one could always do that the dumb way | 12:38 | ||
dalek | rl6-roast-data: 49d920a | (Heiko Jansen)++ | perl6_pass_rates.csv: Update perl6_pass_rates.csv Remove redundant data from revisions bfcb510 and 578f6b4 (from triple commits on Apr. 9th) so GitHub auto formatting works again. |
12:41 | |
rl6-roast-data: 8505d4c | (Will Coleda)++ | perl6_pass_rates.csv: Merge pull request #6 from heikojansen/patch-1 Update perl6_pass_rates.csv |
|||
RabidGravy | FROGGS, on the face of it that doesn't look that difficult, though I'm sure there's some catch I missed | 12:42 | |
FROGGS | RabidGravy: you can first parse+remove the newly added directives and then pass it off to the nqp implementation | ||
no, there should be a catch I think | |||
not* | |||
RabidGravy | :) | 12:43 | |
FROGGS | pesky little words :o) | 12:45 | |
12:45
zjmarlow left
12:46
xfix joined
|
|||
RabidGravy | FROGGS, your latter suggestion was my "dumb way" | 12:50 | |
;-) | |||
FROGGS | :o) | ||
Ven | is there any abstraction (maybe in the ecosystem) to parse something with precedence? | 12:51 | |
FROGGS | Ven: v5 has EXPR | 12:52 | |
though it might be hard to rip out | 12:53 | ||
12:54
rurban left,
andreoss` left
12:57
rurban joined
|
|||
Ven | FROGGS: the v5 grammar is somewhat crazy :o) | 13:01 | |
or very long, at least | |||
nine | Perl 5 grammar is somewhat crazy ;) | 13:03 | |
FROGGS | it is not much worse than P6's grammar | 13:04 | |
(file size wise) | |||
13:04
RabidGravy left
|
|||
Ven | FROGGS: I'm just wondering how to parse infixes "cleanly" without infinite loops :) | 13:05 | |
token expr { <expr> + % <op> } is cool, but.. :P | |||
FROGGS | I just know about EXPR, which also guesses pre- and postfixes nicely | 13:06 | |
13:07
Rounin joined
13:10
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
dalek | ast: 6e1d6a3 | jnthn++ | S15-nfg/case-change.t: Some very basic NFG case-change tests. |
13:12 | |
13:18
RabidGravy joined
13:20
andreoss joined
|
|||
andreoss | is there a method to mesure a wallclock time of block execution? | 13:21 | |
clock { BLOCK } or something | 13:22 | ||
i could use profiler, but not willing to leave repl | 13:23 | ||
jnthn | There's a benchmark module, iirc. Otherwise, there's "code; say now - INIT now" or so | ||
Maybe "now - ENTER now" is better in the REPL | 13:24 | ||
13:29
lolisa is now known as sleepwalking,
sleepwalking is now known as lolisa
|
|||
andreoss | m: sub clock(&B) { my $now = now; &B() ; warn $now - now }; clock { sleep 1 }; | 13:30 | |
camelia | rakudo-moar 5cfddf: OUTPUT«-1.0008718 in sub clock at /tmp/X216dAoWzT:1» | ||
andreoss | okay | ||
RabidGravy | I'm sure there's some solution involving monkey patching Block but I can't get there at the moment ;-) | 13:33 | |
it appears that there are 8 modules in the META.list that don't appear in the modules list for one reason or another | 13:35 | ||
andreoss | is there someting nicier than .gist and .perl for blocks? | 13:38 | |
jnthn | Define "nicer" | 13:39 | |
RabidGravy | tony-o, you around? | 13:42 | |
nine | jnthn: probably something that includes the source code? | ||
andreoss | this, like B::Deparse->coderef2text | 13:44 | |
jnthn | No, there's no way to do that. | ||
Probably at some point somebody will write a prama-y module using some macro-y trick that attaches the source. | 13:45 | ||
We don't keep anything around that we can deparse though. | |||
nwc10 | nor does perl 5 really. | ||
B::Deparse is a cunning hack that generates "code that would compile to the same thing" | 13:46 | ||
(modulo bugs in it) | |||
13:46
muraiki joined
|
|||
jnthn | An op tree still makes that cunning hack more plausible than the bytecode of whatever VM we happen to be running on. | 13:47 | |
nwc10 | but pmichaud_ | ||
but pmichaud demonstrated decoding PIR to LOLCODE | 13:48 | ||
jnthn | eww :) | ||
nwc10 | so presuambly it can also be done for MoarVM | ||
jnthn | Oh, I don't think he did though | ||
It was a QAST level, no? | |||
nwc10 | oh, maybe I'm misremembering | ||
OK, lets watch: www.youtube.com/watch?v=DzpSREpLJY8 | 13:49 | ||
13:51
aborazmeh left
|
|||
nwc10 | I CAN HAZ LOCODE ON NQP? | 13:53 | |
13:53
andreoss left
|
|||
nwc10 | jnthn: you remembered correctly. | 13:53 | |
masak | "`make` is an implementation of *constructive logic programming*, using the following instantiation of the 'Propositions-as-X' paradigm" -- interesting. -- bentnib.org/posts/2015-04-17-propos...-make.html | ||
nwc10 | pmichaud_++ # LOLCODE still fun | 13:57 | |
masak | pmichaud_++ # amazing lightning talk, too | ||
nwc10 | so good it bent time. | ||
masak | funny *and* educational. | ||
13:59
andreoss joined
|
|||
brrt thinks fosdem is never going to upload the languages sessions | 14:00 | ||
FROGGS | brrt: an hour ago I checked the status page again and sighed... as usual | 14:01 | |
masak .oO( tossed dem ) | |||
brrt | masak: lol | ||
dalek | ast: 1977cfe | jnthn++ | S15-nfg/regex.t: Baisc tests for regex + grapheme interaction. |
14:16 | |
14:26
Khisanth left
14:28
Khisanth joined
|
|||
dalek | p: 53d43e8 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for more NFG work. |
14:31 | |
14:31
diana_olhovik_ left
14:32
diana_olhovik_ joined
|
|||
dalek | kudo/nom: f23bc73 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for Moar NFG improvements. |
14:32 | |
kudo/nom: 958ffbf | jnthn++ | t/spectest.data: Run 3 more NFG-related spectests. |
|||
andreoss | m: my @x := True xx *; say @x.kv[0,1]; | 14:33 | |
camelia | rakudo-moar 5cfddf: OUTPUT«0 True» | ||
moritz | m: my @x := True xx *; say @x[0]:kv | 14:34 | |
camelia | rakudo-moar 5cfddf: OUTPUT«0 True» | ||
andreoss | im getting "Cannot call method 'kv' on a null object | ||
with .kv on infinite list | |||
moritz | andreoss: how old is your rakudo? | ||
andreoss | 2015.03 | 14:35 | |
14:36
_mg_ left
|
|||
andreoss | on Windows | 14:36 | |
nine | ancient ;) | ||
moritz | star-m: my @x := True xx *; say @x.kv[0,1]; | 14:37 | |
camelia | star-m 2015.03: OUTPUT«0 True» | ||
moritz | works with 2015.03 here | ||
andreoss | yep, looks like a repl issue | 14:38 | |
works in one line, but doesn't in two | |||
FROGGS | the repl has problems with bindings | 14:40 | |
moritz | andreoss: well, with two lines, it tries to print the return value form the first line | 14:42 | |
andreoss: which is unfortunate, since it's infinite | |||
brrt | this is also a really nice article: www.monkeysnatchbanana.com/2015/04/...decisions/ | 14:52 | |
(it's about how somebody ended up patching mysql and the linux kernel for a groupware application in a box) | 14:53 | ||
from which the lesson (for me at least) is: 'wow, it's awesome that this is possible' | |||
14:58
btyler left,
anocelot left
|
|||
nine | The sad truth is: sometimes technical debt really is acceptable and indeed preferable. | 15:01 | |
15:02
yvan1 left
|
|||
moritz | I think there's some tradeoff here; trying to avoid *all* technical debt is exponentially more work than avoiding most technical debt | 15:02 | |
andreoss | can i slice with infinite list? | 15:03 | |
moritz | didn't work last I tried | ||
nine | moritz: true. And despite having spent years to clean up my predecessor's mess at $dayjob, I'm still absolutely convinced that he did the right thing back then. Had he developed in my way back then, the company may not have survived to enjoy the benefits of good code. | 15:08 | |
15:09
Rounin left
|
|||
brrt | i'm not sure if that truth is sad or not | 15:09 | |
:-) | |||
dalek | ast: a80ad64 | coke++ | / (6 files): auto-unfudge. The one marked as sometimes hanging or segfaulting is currently doing neither. |
15:10 | |
brrt | it's sad if you believe (not unreasonably) that code quality is a primary valuable characteristic of a codebase | ||
andreoss | any sieve implementation i've came up so far is slower than just checking every number for primes with .is-prime. is it supposed to be that way? | ||
15:10
cschwenz joined
15:11
cschwenz is now known as cschwenz_,
cschwenz_ is now known as cschwenz1,
cschwenz1 is now known as cschwenz
|
|||
[Coke] | t/04-nativecall/02-simple-args.t (Wstat: 512 Tests: 12 Failed: 2) Failed tests: 10-11 | 15:11 | |
nine | brrt: I don't even have to believe that. I just like good code :) | ||
[Coke] | is-prime is meant to be fast, if that's what you mean. | ||
getting nativecall test failures on os x. I don't normally run make test, typically spec or stress | 15:12 | ||
brrt | [Coke] - you should probably check if it's related to serialisation format change | 15:13 | |
[Coke] | brrt: how? | ||
brrt | if you run them directly (without the test runner) and they complain about serialisation failure, then that's it :-) | 15:14 | |
15:17
btyler joined
15:18
anocelot joined
15:19
gfldex joined
|
|||
hoelzro | o/ #perl6 | 15:20 | |
cschwenz | o/ hoelzro :-) | ||
brrt | \o hoelzro | 15:21 | |
15:21
araujo joined,
araujo left,
araujo joined
|
|||
hoelzro | ahoy cschwenz and brrt! | 15:22 | |
andreoss | examples.perl6.org should have answers for project euler tasks under the spoiler | 15:23 | |
cschwenz | ahoy matey! Yarrrr! | ||
15:24
lolisa left
|
|||
[Coke] | brrt: nope: # Failed test 'passed uint8 0xFE' | 15:24 | |
# at t/04-nativecall/02-simple-args.t line 50 | |||
# expected: '10' | |||
# got: '0' | |||
not ok 11 - passed uint8 0xFFFE | |||
er, that was actually the failure for #10 there. | |||
15:25
skids joined
|
|||
[Coke] | only tests 10,11 fail. everything else in the file is fine | 15:27 | |
FROGGS | I guess these two tests are the only tests about unsigned int8? | 15:28 | |
[Coke] | looks like t/spec/S02-magicals/progname.t is creating the directory GNOREME. | 15:29 | |
15:29
zakharyas left
15:31
brrt left
15:35
alini left
|
|||
[Coke] adds 2 to the open ticket count. | 15:38 | ||
FROGGS | [Coke]++ | ||
15:39
konsolebox left
15:40
grondilu joined
15:44
andreoss left,
araujo left
|
|||
dalek | kudo/nom: bd046ec | jnthn++ | src/Perl6/World.nqp: Toss dead code. |
15:45 | |
kudo/nom: 6f8d283 | jnthn++ | src/Perl6/Actions.nqp: Avoid creating WVal for non-SC object. Fixes RT #124304 (sigilless vars could work out badly in an EVAL). |
|||
jnthn | [Coke]: integration/advent2014-day05.t now hangs for me. | 15:46 | |
dalek | ast: 0782842 | jnthn++ | S29-context/eval.t: Add test for RT #124304. |
||
[Coke] | jnthn: dammit, it worked on my fiddly os. :) | 15:47 | |
I'll refudge it. | |||
flussence | .tell andreoss .is-prime calls down to mp_prime_is_prime() in libtommath, so you're going to have no chance of beating it for speed using perl6 code. | 15:49 | |
yoleaux | flussence: I'll pass your message to andreoss. | ||
TimToady | well, he could native-call down to the same function, and nearly tie for speed :) | 15:50 | |
15:51
colomon joined,
FROGGS left
|
|||
dalek | ast: 361a73b | coke++ | integration/advent2014-day05.t: re-fudge. works for Coke, hangs for jnthn++ |
15:51 | |
hoelzro | when is 2015.04 supposed to go out? | 15:52 | |
[Coke] | thursday | ||
hoelzro | hmm | ||
any chance someone could look at my tab completion branch by then? it would be great if it could make it into the release! | |||
15:52
Ven left
|
|||
[Coke] | "thursday after the 3rd tuesday", even though the reason we did that isn't happening anymore. | 15:53 | |
16:02
rurban left
|
|||
moritz | we just haven't had a reason to change the release date | 16:02 | |
grondilu | btw in the REPL standard shortcuts like Alt-B, Alt-D and so on do not function. On GNU/Linux that is. | 16:04 | |
flussence | which standard is that? | ||
grondilu | readline | ||
standard in the Unix sense. | |||
I mean come on, it's really basic stuff we see everywhere else. | 16:05 | ||
that's part of the reason I never use the REPL anyway. | |||
16:07
laouji left
|
|||
[Coke] honestly doesn't know what alt-b and alt-d are supposed to do. | 16:07 | ||
tony-o | RabidGravy: yes | 16:08 | |
grondilu | back a word and delete a word. How do you do that on your system and does it work with the REPL? | ||
(please don't tell me you're using your mouse) | 16:09 | ||
geekosaur | [Coke]: emacs style command editing | ||
16:09
spider-mario joined
|
|||
RabidGravy | tony-o, hi, I put an "issue" on your Event::Emitter module, suggesting that I merge what I did with yours | 16:10 | |
tony-o | RabidGravy: i'll take a look | ||
grondilu | tony-o: www.bigsmoke.us/readline/shortcuts | ||
16:10
donaldh left
|
|||
grondilu | tony-o: sorry, that was intended to [Coke] | 16:11 | |
tony-o | grondilu: did you mean that for someone else? | ||
ah :-) | |||
:wq | |||
RabidGravy | I've done one of the roles already, should be good with the other in a few minutes :) | 16:12 | |
[Coke] | ^W deletes the word (to the left) | 16:13 | |
tony-o | RabidGravy: merging it - thank you | ||
16:13
andreoss joined
|
|||
[Coke] | I don't know if linenoise has a "move left one word" shortcut. | 16:14 | |
RabidGravy | tony-o, there'll be another PR with the additional roles in a bit and if you're cool with that I'll remove the EventEmitter from the modules list | 16:15 | |
hoelzro | the shortcuts that linenoise supports are indicated here: github.com/hoelzro/p6-linenoise/bl...ise.c#L770 | 16:16 | |
RabidGravy | no point in having two almost identical packages | ||
grondilu | hoelzro: ok, noted. | 16:18 | |
grondilu doesn't know why linenoise is used instead of readline but he assumes there are reasons. | 16:19 | ||
hoelzro | grondilu: licensing | 16:21 | |
16:22
cschwenz left
|
|||
hoelzro | although we could probably use libedit to solve the compatability and licensing issues | 16:22 | |
16:27
captain-adequate joined,
captain-adequate left
16:31
captain-adequate joined
|
|||
dalek | kudo/nom: a75917e | jnthn++ | t/02-rakudo/repl.t: Make REPL tests robuster for Windows. |
16:36 | |
kudo/nom: da0f895 | jnthn++ | src/Perl6/ (2 files): Don't lower UNIT lexicals from the REPL. Unbusts binding in the REPL, fixing RT #122914. |
|||
kudo/nom: 15bb095 | jnthn++ | t/02-rakudo/repl.t: REPL tests for RT #122914. |
|||
16:37
diana_olhovik_ left
16:38
zjmarlow joined
|
|||
timotimo | oooh | 16:38 | |
that's a nice fix, jnthn! | |||
that'll allow so many people to try out infinite list things without stumbling over the repl being strange | |||
jnthn | yeah, figured I should hunt it down | ||
Took a bit to find 'cus my first guess was that it was related to the sigilless vars in EVAL bug that FROGGS reported over the weekend | 16:39 | ||
But it turned out to be somethiung else entirely. | |||
Also those REPL tests I add actually pass on Windows. | |||
I think we don't run that test file, however. | |||
It uses fudge markers when it should probably use normal todo | 16:40 | ||
16:40
MARTIMM joined
16:42
zjmarlow left
|
|||
timotimo | jnthn: could i perhaps steal a shred of jnthntime to get that superfluous decont fixed for local/localref? | 16:42 | |
dalek | kudo/nom: ee1e718 | jnthn++ | t/02-rakudo/repl.t: Use normal todo markers in REPL tests. It's not in spectest, so fudge don't apply here. |
16:43 | |
timotimo | (after that i should be able to make the lexical stuff work somewhat easily?) | ||
jnthn | timotimo: I kinda need to eat now, but could look into that after dinner. | 16:44 | |
timotimo | that'd be swell :) | 16:45 | |
i also have a bit of errands and the weekly to keep me entertained in the mean time | |||
16:46
spider-mario left
|
|||
jnthn | Yeah, it's time for me to write up another weekly report today too :) | 16:46 | |
16:53
espadrine left
|
|||
jnthn | dinner & | 16:55 | |
[Coke] | psch: github.com/rakudo/rakudo/commit/20...5fb92055c1 - when do we have fudged test files not in t/spec ? | 17:03 | |
psch | [Coke]: that's t/02-rakudo/repl.t — jnthn said a few minutes ago it should "use normal todo"? | 17:05 | |
where "that's" means "i added a test file that, when ran manually, produces a fudge file" | 17:06 | ||
actually, i think bartolin_++ added it | |||
but i fudged in there | |||
anyway, point being, if there's a different mechanism (or there's none needed because we don't run it by default) i didn't know about it | 17:07 | ||
17:07
vendethiel joined
17:09
abraxxa left
17:11
mohij joined
17:12
eli-se joined
17:13
grettis joined
17:19
mr-foobar joined
17:21
prammer left
17:34
prammer joined
17:39
telex left
17:40
telex joined
|
|||
b2gills | I've seen both `... () returns Type {...}` and `... ( --> Type ) {...}` in the Rakudo source, I wonder if one of them should be the standard ( at least within the Rakudo source files ) | 17:41 | |
TimToady | there are arguments for both sides :) | 17:42 | |
it really depends on whether you think about the signature as only being for dispatch, or as something that specifies the whole API | 17:43 | ||
I tend to like --> for the latter reason | |||
"here are the inputs and outputs" | 17:44 | ||
but it does confuse people sometimes into thinking that return values participate in MMD | 17:45 | ||
so we haven't really taken a stand one way or the other | 17:46 | ||
and, there is in fact a third way, which is more of a C-style | |||
my Type sub foo () {...} | |||
17:46
FROGGS joined
|
|||
dalek | ecs: 6e08690 | (Stéphane Payrard)++ | S99-glossary.pod: added MAIN entry and (empty) YOU_ARE_HERE |
17:46 | |
vendethiel | m: sub f of Int { 5 }; say f; # b2gills | 17:48 | |
camelia | rakudo-moar ee1e71: OUTPUT«5» | ||
vendethiel | 4th way, as well :-) | ||
TimToady | m: my $f = -> Int $a, Int $b --> Real { $a / $b }; say $f(1,2) | ||
camelia | rakudo-moar ee1e71: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jSsyAKLWfcMissing blockat /tmp/jSsyAKLWfc:1------> 3my $f = -> Int $a, Int $b --> Real7⏏5 { $a / $b }; say $f(1,2)» | ||
b2gills | Of course in Perl 6 there is no standard, but seeing two of the many ways mixed in the same source file is not great | ||
TimToady | looks like lambda doesn't hanlde --> right yet | 17:49 | |
std: my $f = -> Int $a, Int $b --> Real { $a / $b }; say $f(1,2) | |||
camelia | std 28329a7: OUTPUT«ok 00:00 144m» | ||
TimToady | note that --> is the only way to give a return type for a -> | ||
well, maybe not | 17:51 | ||
std: my $f = -> Int $a, Int $b { also returns Real; $a / $b }; say $f(1,2) | |||
camelia | std 28329a7: OUTPUT«ok 00:00 144m» | ||
TimToady | m: my $f = -> Int $a, Int $b { also returns Real; $a / $b }; say $f(1,2) | ||
camelia | rakudo-moar ee1e71: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6GaDofZvgvCannot call trait_mod:<returns>(Block, Real); none of these signatures match: (Routine:D $target, Mu:U $type)at /tmp/6GaDofZvgv:1» | ||
TimToady | why is it not a Block? | 17:52 | |
so there's yet another way :) | |||
well, unless you count it the same as 'returns' outside the block | 17:53 | ||
b2gills | I was just saying that the Rakudo source should perhaps be a bit more homogeneous | 17:54 | |
TimToady | oh, wait, that's the call that is Block, so that's right | 17:55 | |
17:56
atweiden joined
|
|||
TimToady | b2gills: I'm not too worried about it, epecially if the documentation tools can turn the 'returns' form into the '-->' form for presentation to the user | 17:57 | |
17:58
itz_ joined
|
|||
TimToady | at the moment the source code reflects more of the implementation view rather that the API view | 17:58 | |
18:01
itz left
|
|||
[Coke] | psch: yah, there's no fudging if it's not in t/spec, so those are just comments. | 18:03 | |
jnthn: all those tests pass here, no need for todo. | 18:08 | ||
18:10
dolmen joined
|
|||
[Coke] | oh, they're not run in make test. arglebargle. | 18:11 | |
18:13
eli-se left
18:17
rindolf left
18:22
yvan1 joined
18:23
molaf joined
|
|||
atweiden | i'm trying to convert an array of unknown length @arr = "one", "two", "three" | 18:24 | |
to %h<one><two><three>... | |||
should i be using a macro for this? | |||
moritz | a sinmple function will do | ||
atweiden | how to return <one><two><three> from a function? | 18:25 | |
18:25
diana_olhovik joined
|
|||
vendethiel | m: my %h; my @a = <one two three>; %h{||@a} = 1; say %h.perl | 18:25 | |
camelia | rakudo-moar ee1e71: OUTPUT«5===SORRY!5===Arg-flattening | is only valid in an argument listat /tmp/WfpndeHWxC:1------> 3my %h; my @a = <one two three>; %h{|7⏏5|@a} = 1; say %h.perlArg-flattening | is only valid in an argument listat /tmp/WfpndeHWxC:1-----…» | ||
TimToady | NYI | ||
vendethiel | aw :-) | ||
moritz | m: sub deref(%h, *@k) is rw { my $h = %h; $h = $h{$_} for @k; $h }; deref(my %x, <one two three>) = 42; say %x.perl | 18:26 | |
camelia | rakudo-moar ee1e71: OUTPUT«{}<>» | ||
18:27
dtscode is now known as dts|pokeball
|
|||
moritz | m: sub deref(%h, *@k) is rw { my $h = %h; $h = $h{$_} for @k; $h }; my %x = one => (two => (three => 42)); say deref(%x, <one two three>); | 18:27 | |
camelia | rakudo-moar ee1e71: OUTPUT«42» | ||
moritz | at least works as an rvalue | 18:28 | |
atweiden | i need it as lvalue | ||
moritz | sorry, can't debug it for you right now (screaming baby on the lap) | 18:29 | |
m: sub deref(%h, *@k) is rw { my $h := %h; $h := $h{$_} for @k; $h }; deref(my %x, <one two three>) = 42; say %x.perl | |||
camelia | rakudo-moar ee1e71: OUTPUT«{:one({:two({:three(42)})})}<>» | ||
moritz | ah, binding helps | ||
atweiden | thank you, that is awesome | 18:30 | |
El_Che | moritz: the screaming baby sounds like a perl syntax joke ) | ||
:) | |||
RabidGravy | tony-o, sent big PR as mentioned before :) | 18:31 | |
18:31
eli-se joined
18:32
Sqirrel joined
|
|||
moritz | El_Che: no, the real Ms. 1 is getting her teeth | 18:34 | |
18:34
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
El_Che | moritz: fun time. I remember | 18:37 | |
vendethiel | TimToady: did you look at what it'd take (amount-of-work-wise) for implementing "prefix:<||>" when doing LOLLY? | 18:38 | |
(I also think that the current prefix:<|> misses some specific semantics? I can't remember, they do quite a lot...) | |||
dalek | rl6-roast-data: 4c934fd | coke++ | / (9 files): today (automated commit) |
18:39 | |
rl6-roast-data: 0aceb1f | coke++ | / (2 files): today (automated commit) |
|||
TimToady | vendethiel: no, didn't look at that yet | ||
and actually, it's mouq++ that did the subscripting part of it | 18:42 | ||
vendethiel | ooh. Mouq++ :-) | 18:43 | |
18:45
aindilis left,
aindilis joined
|
|||
dalek | p/mast_localref_2: e2fc716 | timotimo++ | src/vm/moar/QAST/QASTCompilerMAST.nqp: localrefs are always in object registers |
18:46 | |
p/mast_localref_2: 13967fc | timotimo++ | t/moar/02-qast-references.t: this loop'll give you spesh log output for the tests |
|||
18:48
aindilis left,
aindilis joined
18:50
dolmen left,
aindilis left
18:53
aindilis joined
18:57
brrt joined
18:58
anaeem1 joined
|
|||
tony-o | RabidGravy: merged your E:E PR | 18:59 | |
RabidGravy | coolio | ||
dalek | kudo/nom: b629299 | TimToady++ | src/Perl6/Grammar.nqp: allow ws after --> Type in signature |
19:00 | |
19:02
aborazmeh left
|
|||
masak | RT #113078 -- hehe, is the directory really called "GNOREME" ? | 19:03 | |
19:04
andreoss left
|
|||
masak .oO( gnore, v.t. ) | 19:04 | ||
dalek | osystem: 0897770 | (Jonathan Stowe)++ | META.list: Remove EventEmitter in favour of more featuresome Event::Emitter |
||
19:07
dts|pokeball is now known as dtscode
19:09
alini joined
19:11
yqt joined
19:15
grettis left
|
|||
dalek | ast: b6e2526 | usev6++ | fudge: Register all functions from test modules used in roast |
19:21 | |
ast: 29a0324 | usev6++ | t/ (8 files): Add more tests for fudging |
|||
ast: e550267 | usev6++ | fudge: Fix fudging for 'todo' ... until now it could happen that plain code lines were marked with 'todo' by fudge |
|||
19:23
leont joined
19:24
molaf left
|
|||
TimToady | m: my $f = -> Int $a, Int $b --> Real { $a / $b }; say $f(1,2) | 19:25 | |
camelia | rakudo-moar b62929: OUTPUT«0.5» | ||
TimToady | m: my $f = -> Int $a, Int $b --> Int { $a / $b }; say $f(1,2) | ||
camelia | rakudo-moar b62929: OUTPUT«0.5» | ||
TimToady | oopsie | 19:26 | |
19:26
grettis joined
|
|||
TimToady | m: my $f = -> Int $a, Int $b --> Int { $a / $b }; say $f.returns | 19:26 | |
camelia | rakudo-moar b62929: OUTPUT«(Mu)» | ||
TimToady | well, at least it parses now... | ||
vendethiel | TimToady++ | 19:28 | |
TimToady | it would be a shameful thing to claim to do modern FP and not allow lambdas to be typed... | 19:29 | |
skids | m: gist.github.com/skids/255ade0fc1b2709e22b3 # I'm inclined to lay the blame for much of the slowness of Sum here, FWIW | 19:30 | |
camelia | rakudo-moar b62929: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rYNCnioB0EConfusedat /tmp/rYNCnioB0E:1------> 3https:7⏏5//gist.github.com/skids/255ade0fc1b2709e expecting any of: colon pair» | ||
skids | oops didn't mean to m that. | 19:31 | |
vendethiel | m: my $rep = -> ::T $a, Int $n --> Array[T] { $a xx $n }; say $rep(3, 3); | ||
camelia | rakudo-moar b62929: OUTPUT«3 3 3» | ||
RabidGravy | anyone got a boilerplate test for a good META.info? I keep making mistakes in them | 19:40 | |
19:43
muraiki left
19:49
muraiki joined
19:51
espadrine joined
19:53
lizmat joined,
anaeem1 left
19:55
alini left
19:56
prammer left
|
|||
grondilu | m: m: my $rep = -> ::T $a, Int $n --> Array[T] { Mu xx $n }; say $rep(3, 3); | 19:58 | |
camelia | rakudo-moar b62929: OUTPUT«(Mu) (Mu) (Mu)» | ||
19:59
dtscode is now known as shikhins,
spider-mario joined
|
|||
TimToady | grondilu: it doesn't even attach the type info currently | 19:59 | |
grondilu | ok | ||
19:59
prammer joined,
shikhins is now known as dtscode
|
|||
jnthn | Not to mention that we don't even attempt to handle generic return types yet | 20:00 | |
furthrmore, Mu xx $n sure won't match Array[T] | |||
TimToady | might possibly match Array[T]() someday though | 20:02 | |
jnthn | I...uh...what? :) | ||
I don't think that's valid as a matcher. | |||
Well, it is, but it matches Any | 20:03 | ||
TimToady | it's a coercion | ||
jnthn | I know, which is an operation, not a type check... | ||
20:03
darutoko left
20:04
grettis left
|
|||
TimToady | well, long term the right side of --> is intended to be more than a type check | 20:04 | |
jnthn | If you want coercion to do that, I need a bit more of an idea of how you want coercions to work. :) | ||
20:04
ponbiki left
|
|||
jnthn | I can see that we might get 'em to be constrainty | 20:05 | |
But I don't have any idea how exactly it should be factored. | |||
I'll happily implement any sane design there, but I didn't manage to come up with one yet. | 20:06 | ||
TimToady | we probably need to figure out how --> $retval and --> Nil and such work first | 20:07 | |
but no rush | |||
--> with non-types can wait, maybe even till after Christmas | 20:08 | ||
jnthn | True; coercion type details also sorta-can if we decide they're de-sugars for now, but if we want to get rid of the need for IntStr and co. before Christmas then I think we need to figure out coercion types - and coercion generally - a little better. | 20:09 | |
20:09
grettis joined
|
|||
jnthn | At the moment, I only made coercion types do stuff on parameters. | 20:09 | |
And it's just "sugar" for what what "Foo $bar as Baz" produced. | 20:10 | ||
20:11
prammer left
|
|||
TimToady | coercion on return might become obvious from however we decide 'my Int() $i = ..." works | 20:11 | |
jnthn | Agree. | ||
I'll work more on NFG later in the week; might I push the following onto your pondering stack: | 20:12 | ||
20:12
konsolebox joined
|
|||
TimToady | so if that desugars to 'my Int $i = Int(...)', maybe the corresponding is to desugar the return $x to return Array[T]($x) | 20:12 | |
20:12
ponbiki joined
|
|||
jnthn | 1) What leg does with synthetics | 20:12 | |
2) What the bitwise string ops do with synthetics | |||
TimToady | in any case, it's different from non-types and non-coercing types | 20:13 | |
jnthn | 3) If the tests I've written so far in S15-nfg/regex.t are sane :) | ||
Well, we can't syntactically desugar my Int() $i = ... becuase we have first-class l-values, so it can happen at at distance. | 20:14 | ||
TimToady | nod | ||
part of why I said 'if' | |||
but to generalize from there requires types that not only check if they can coerce but can somehow return both success and the new value | 20:15 | ||
jnthn | Yes, the interface for doing that is the bit I'm not sure about. | ||
TimToady | ich ouch :) | 20:16 | |
jnthn | :) | 20:17 | |
On NFG, btw, I mostly took the Unicode canonical composition algo description's definition of starter/non-starter and took it to its logical conclusion to get the NFG algorithm. | 20:18 | ||
However, canonical comp (which gets to NFC) has an algorithmic special case for Hangul. | |||
I don't know enough about Hangul to know if NFG needs anything there. :) | 20:19 | ||
I dunno if you know, or who might know. :) | |||
TimToady | good thing we're not a standards body, or we'd have to take two years to decide that... | 20:20 | |
I think for now we just guess, and wait for feedback from native speakers of various languages | |||
20:20
prammer joined
|
|||
TimToady notes that at least at one point, CRLF was being considered a grapheme | 20:20 | ||
20:21
xfix left
|
|||
jnthn | OK. From what I can figger from the Unicode spec, it's probably classical rather than comtemporary Korean than might want the special cases anyway. :) | 20:21 | |
[Coke] | Do we need to put out a request for a Hangul unicode expert? | ||
20:21
virtualsue joined
|
|||
[Coke] | maybe it can go into the weekly. | 20:21 | |
jnthn | [Coke]: Good idea. | 20:22 | |
TimToady | though I don't think we can worry about getting it right for every language out there before Christmas | ||
we should plan to revise as we know more | |||
jnthn | TimToady: Hangul is the only thing with special cases in NFC anyways. | ||
TimToady | and doc that this aspect of it is experimental | 20:23 | |
masak | I wouldn't mind us finding a Hangul unicode expert just for the sake of it :) | ||
TimToady | for those orthographies "beyond" Hangul I think this is one of those areas where we just get "close enough" to what people will need for now | 20:24 | |
jnthn | I think the natural extension of the NFC algo I've done will go pretty far. | 20:25 | |
TimToady | if there's some way to override the built-in rules for local needs, that would probably suffice for a good long time | ||
20:25
Rounin joined
|
|||
TimToady | and then if the Unicode Consortium adopts some of those rules, they could probably be implemented by the same mechanism | 20:26 | |
20:29
Sqirrel left
|
|||
[Coke] | m: use Test; ok (chars "abcdef" > 4), "chars() has the right precedence (1)"; | 20:29 | |
camelia | rakudo-moar b62929: OUTPUT«Earlier failures: Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏abcdef' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7422 in sub parse-simple-number at src/gen/m-CORE.setting…» | ||
[Coke] | ^^ that dodgy test is in S32-str/length | ||
it's from 2008-01-12 | 20:30 | ||
20:30
Sqirrel joined
|
|||
jnthn | [Coke]: The test looks bogus t ome | 20:30 | |
[Coke]: chars isn't a prefix op | |||
[Coke] | m: use Test; is (chars("abcdef" > 4)), 0, "chars() has the right precedence (2)"; | 20:31 | |
camelia | rakudo-moar b62929: OUTPUT«Earlier failures: Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏abcdef' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7422 in sub parse-simple-number at src/gen/m-CORE.setting…» | ||
20:31
alini joined
|
|||
masak | should be `chars("abcdef")` | 20:31 | |
[Coke] | that one as well. Ok, will rip them out. | ||
jnthn | Maybe the test is from a time when chars *was* a prefix op? | ||
But I'm pretty sure these ays it shouldn't be. | 20:32 | ||
8days | |||
*days | |||
dalek | ast: 9d678a5 | coke++ | S32-str/length.t: Remove test fossils. jnthn++ |
20:33 | |
20:34
kaare_ left
|
|||
[Coke] | jnthn: what is "equanity" ? | 20:35 | |
dalek | pan style="color: #395be5">perl6-examples: 43d78b6 | (Steve Mynott)++ | categories/cookbook/ (2 files): fix numeric examples |
||
[Coke] | S15-nfg/mass-equality.t (is it equality?) | ||
TimToady | jnthn: on 1), I'd say that you can use NFCish comparison to check for equality at a position, but as soon as you've got an inequality, we probably have to compare NFDishly for any kind of consistency | 20:36 | |
jnthn | [Coke]: uh, yes, weird typo... | ||
TimToady | on 2), flying butt unicorns of any color are probably appropropriate | 20:37 | |
s/pro// | |||
on 3), you're assuming that anything in a file named 'regex.t' can be sane... | 20:38 | ||
jnthn | TimToady: On 2, I'll probably iterate codepoints, operate on those, and then re-NFG. | 20:39 | |
Those seem like non-SEGV-y butt unicorns :) | 20:40 | ||
TimToady | but iterate to NFC or NFC is the question | ||
er, NFD | 20:41 | ||
jnthn | Hm, true | ||
TimToady | well probably doesn't matter | ||
jnthn | The easy thing is NFC | ||
TimToady | it's really only there for ASCIIish chicanery | ||
jnthn | Aye | ||
For 1, how ish can NFDish be? | 20:42 | ||
TimToady | on 3 I assume that :m might cause a character class to ignore marks, but not otherwise | ||
jnthn | What do you mean by char class? | ||
:m is ignoremark, yes? | 20:43 | ||
TimToady | the stuff under # Enumerated character classes don't accidentally discard the combiners, though. | ||
jnthn | OK, then that works for me | ||
And \w and things like <:L> looking at the base grapheme is sensible? | 20:44 | ||
TimToady | well, if one of the strings has an NFC and the other a synthetic that you have the NFD for, you can't really compare those consistently without turning the NFC into NFD too | ||
yes, I think that's sensible | |||
jnthn | Synthetics are stored in NFC. | ||
As in, the base + codes are NFC | |||
TimToady | we need a way to scan combiners intentionally though | ||
20:45
MARTIMM left
|
|||
jnthn | *nod* | 20:45 | |
Not sure how that wants to look yet. | |||
TimToady was always thinking it was NFD, but I can see where the other might be okayish | |||
jnthn | It's NFC mostly because that's a fairly normal thing to want on output | ||
TimToady | is probably consist under NFC comparison also | 20:46 | |
*tent | |||
jnthn | Yeah, it menas there's a bunch of synthetics we don't need. | ||
also that ord works within the latin-1 range however we decide to implemnt ord | |||
If we go the NFD route I'm not sure we can promise that. | |||
TimToady | the main problem with NFC is that you can get "old" canonicalizations coming out of databases and such | 20:47 | |
with NFD you never get that | |||
jnthn | We don't have any Perl 6 level code path to let you tell us "it's NFC I promise" yet anyways. | ||
TimToady | but I suppose that's no harder than the canonicalizations we do on input anyway | 20:48 | |
jnthn | So we always do the check | ||
(Using the QuickCheck property, and only doing real work if we have to) | |||
TimToady | well, we may need to make some concessions to performance there | ||
jnthn | Maybe, though given we already need to do the "get to NFG" step... | 20:49 | |
(Which already needs the scan through the string) | |||
Not sure we've so much to win. | |||
While I've described NFG as "take NFC and then..." it's actually being computed in a single pass. | |||
TimToady | do we attempt to share NFC with NFG if there's no combiners, since they're both immutable? | ||
jnthn | I've designed it so we can go straight from bytes to NFG in a sinlge pass without an intermediate result. | 20:50 | |
*single | |||
There's nothing *yet* that lets us take the raw bytes in the, say, ASCII range and say "don't copy at all" | 20:51 | ||
TimToady | does NFC() notice en passant whether it qualifies as NFG already? | ||
jnthn | No, but at the moment they result in different representations. | 20:52 | |
TimToady | would be nice to avoid two passes in the case of double conversion | ||
but simple first | |||
jnthn | Aye, though I don't expect many people to actually use Uni in real life. | ||
TimToady | nod | ||
mabye we should spell it out longer to discourage people :) | 20:53 | ||
jnthn | It's used extensively in the tests because it lets me talk very directly about codepoints, and it also gave me a way I could get NFG stuff in place and tested without turning it on for all the "normal strings" yet. | ||
TimToady | I agree that most of the time we'll be going straight from UTF to NFG | 20:54 | |
jnthn | Yeah, that's the path I've designed to not produce a huge bunch of intermediate results | 20:55 | |
It's quite "fun" though | |||
20:55
diana_olhovik left
|
|||
TimToady | -O"fun" | 20:55 | |
masak was gonna say that :) | 20:56 | ||
jnthn | UTF-8 means that codepoints can danlge over multiple IO buffers, and NFG means graphemes can dangle over multiple codepoint buffers. | ||
I've done stream-y APIs for both levels that we can compose. | |||
And the normalization buffer is basically "things that failed quickcheck" | 20:57 | ||
If you never hit something needing normalizing the buffer is at most 2 codepoints in size. | |||
But geez, getting Unicode decently right is quite some work. :) | 20:58 | ||
TimToady | ayup | ||
leont recognizes the problem, having looked at implementing a NF[DC] normalization layer for perl 5 (never wrote it in the end, ETUITS) | 20:59 | ||
ugexe | is there some way to apply constraits to a tap parameter without it dying when it fails its type check? like if a file gets passed to a supply with my $dir-tap = $paths.tap(-> $path where {$path.IO.d} { say $path }); | 21:02 | |
jnthn | ugexe: No, though nothing stops you writing a bunch of multi candidates and doing $paths.tap(&the-multi) | ||
ugexe | ah that works too | 21:03 | |
jnthn | ugexe: If you want to filter just $paths.grep(*.IO.d).tap(...) though | ||
nwc10 | what sort of failure is this? | 21:07 | |
Stage parse : Error while compiling, type X::Syntax::Can'tMeta | |||
meta: cross with | |||
operator: , | |||
dba: comma | |||
reason: too fiddly | |||
line: 20522 | |||
modules: () | |||
from src/Perl6/Grammar.nqp:2495 (blib/Perl6/Grammar.moarvm:declarator:848) | |||
21:09
Sqirrel left
|
|||
masak | shouldn't that be X::Syntax::CannotMeta, by the General Decree of Cannot? | 21:11 | |
nwc10 | possibly, but I assume that if it were, it would just fail with different words :-) | ||
masak | right, I'm bringing up a side point ;) | ||
Can'tMeta looks really weird from a visual pill standpoint. | 21:12 | ||
nwc10 | this is somewhat - it failed there. What on Earth does that mean? | 21:14 | |
and can I blame IBM? | |||
and even if I can, does that help solve it? | |||
21:15
dolmen joined
|
|||
masak | nwc10: the error itself is really weird/bogus. | 21:17 | |
nwc10: if I'm reading it correctly, it's saying that you can't do `X,` | |||
nwc10 | hence, "can I blame IBM?" | ||
21:18
bjz left
|
|||
nwc10 | in that, it's ppc64le | 21:18 | |
masak | nwc10: which is weird/bogus, because `X` defaults to `X,` | ||
nwc10 | but it *did* pass all the NQP tests | ||
"bug in the C compiler" is not out of the question here. | |||
masak is spectesting renaming Can'tMeta | |||
21:19
Sqirrel joined
|
|||
nwc10 | Oh, bonkers, it seems to have a working valgrind. Let's try that :-) | 21:19 | |
jnthn | masak: Why? | ||
masak: And what to? | 21:20 | ||
21:21
virtualsue_ joined
21:22
virtualsue left,
virtualsue_ is now known as virtualsue,
dolmen left,
muraiki left
|
|||
nwc10 | Can::tMeta ? :-) | 21:25 | |
masak | jnthn: X::Syntax::CannotMeta, because at some point we standardized that in the choice between "can't", "can not", and "cannot", error messages should choose "cannot" | 21:30 | |
jnthn | masak: OK. | 21:31 | |
masak | nwc10: some features I'm glad we didn't inherit from Perl 5 ;) | 21:32 | |
21:32
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: d9c1e3e | (Steve Mynott)++ | categories/cookbook/01strings/01- (2 files): more LHF examples |
21:34 | |
kudo/nom: c4beed6 | (Carl Masak)++ | src/ (2 files): rename s/Can'tMeta/CannotMeta/ <jnthn> masak: Why? <masak> because at some point we standardized that in the choice between "can't", "can not", and "cannot", error messages should choose "cannot" |
21:36 | ||
ast: d625ea1 | (Carl Masak)++ | S03- (4 files): chase Rakudo change s/Can'tMeta/CannotMeta/ |
|||
DrForr | 90% of the ANTLR sample grammars pass their parsing step. | 21:37 | |
masak | 'night, #perl6 | ||
jnthn | 'night, masak | ||
DrForr | Nini | 21:38 | |
21:39
aborazmeh left
|
|||
dalek | pan style="color: #395be5">perl6-examples: 8f507ea | (Steve Mynott)++ | categories/cookbook/01strings/01-19 (3 files): remove original and add more consistent name |
21:40 | |
21:40
virtualsue left
21:41
brrt left
21:52
leont left
|
|||
eli-se | $ brew install gnu-cobol | 21:54 | |
vendethiel | omg eli-se. | 21:55 | |
eli-se | you mean "program-id." not "eli-se." | ||
21:57
gfldex left
|
|||
jnthn | omblog: 6guts.wordpress.com/2015/04/20/thi...-and-more/ | 21:58 | |
21:59
yqt left
|
|||
eli-se | vendethiel: I'm porting my hangman implementation from Mercury to COBOL. | 22:01 | |
vendethiel | jnthn++ | ||
eli-se | Screw logic programming! | ||
vendethiel | eli-se: damn :-) | ||
jnthn | .oO( Prolog not like a pro... ) |
22:05 | |
DrForr has a Prolog grammar half-finished somewhere on the VM, but ran into the segfault bug while getting it ready. | 22:07 | ||
jnthn | My tuits ran out before I got to that one, sadly. Though I did fix one thing related to :ignorecase handling that mighta led to a SEGV. | 22:10 | |
labster | jnthn++, looking forward to NFG strings | 22:12 | |
22:13
Zoffix left,
Rounin left
22:20
bobkare left
22:22
bobkare joined
22:23
mohij left,
espadrine left
|
|||
jnthn | sleepy time & | 22:25 | |
RabidGravy | yep | 22:27 | |
22:31
Sqirrel left,
RabidGravy left,
Sqirrel joined
|
|||
eli-se | .tell vendethiel gist.github.com/rightfold/5b5ac73aaaf0d9ccd8bd ;) | 22:35 | |
yoleaux | eli-se: I'll pass your message to vendethiel. | ||
eli-se | .botsnack | 22:36 | |
yoleaux | :D | ||
22:46
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
alini left
22:54
vendethiel left
22:56
aborazmeh left
22:58
vendethiel joined,
konsolebox left
23:01
rmgk left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
23:04
zjmarlow joined
23:05
rmgk joined
23:14
[Tux] left
|
|||
dalek | c: 5360d9c | ennio++ | lib/Language/functions.pod: Just a typo |
23:15 | |
c: bf2136b | labster++ | lib/Language/functions.pod: Merge pull request #74 from scriplit/patch-1 Just a typo |
|||
23:21
vendethiel left,
eli-se left
23:22
vendethiel joined
23:32
pdcawley left
23:47
[Tux] joined
23:49
BenGoldberg joined
|