| Time |
S |
Nick |
Message |
| 00:30 |
|
|
sudokode joined #perl6 |
| 00:34 |
|
|
mcglk joined #perl6 |
| 00:40 |
|
|
sudokode joined #perl6 |
| 00:44 |
|
[Coke] |
sorear, masak: yay, I could that on irclog just before boarding. ;) (+%) |
| 00:44 |
|
[Coke] |
Now the last bug remaining is trying to find the "compreg" |
| 00:45 |
|
[Coke] |
d Partcl compiler. |
| 00:50 |
|
|
tokuhiro_ joined #perl6 |
| 01:04 |
|
|
FROGGS_ joined #perl6 |
| 01:08 |
|
sorear |
[Coke]: boarding? |
| 01:25 |
|
|
jeffreykegler joined #perl6 |
| 01:31 |
|
|
sudokode joined #perl6 |
| 01:39 |
|
|
am0c_ joined #perl6 |
| 01:47 |
|
|
mcglk joined #perl6 |
| 01:58 |
|
|
mcglk joined #perl6 |
| 02:17 |
|
[Coke] |
sorear: yes, I've been talking to you from hotels and airports. |
| 02:17 |
|
* [Coke] |
is now at his final destination for the day. |
| 02:18 |
|
|
cjbot joined #perl6 |
| 02:35 |
|
|
mucker joined #perl6 |
| 03:15 |
|
|
adu joined #perl6 |
| 03:26 |
|
[Coke] |
er, not "I could that", but "I caught that" |
| 03:31 |
|
|
MikeFair_ joined #perl6 |
| 03:31 |
|
MikeFair_ |
sorear: hey ther |
| 03:31 |
|
sorear |
yo. |
| 03:31 |
|
MikeFair_ |
sorear: Actually I was on #perl6 on the Perl Network |
| 03:31 |
|
MikeFair_ |
sorear: no matter though, all here now :) |
| 03:32 |
|
MikeFair_ |
sorear: So you were saying (and I was doing my best to keep up) :) |
| 03:33 |
|
sorear |
mm, it that a thing? |
| 03:35 |
|
MikeFair_ |
Guess we're just a bunch of confused souls over there not realizing we belong here? |
| 03:35 |
|
sorear |
I think most of them joined so that they could tell off other people who join |
| 03:35 |
|
sorear |
but in doing so they've prevented the channel from expiring |
| 03:36 |
|
MikeFair_ |
Well I just left (and then there were 9) |
| 03:36 |
|
MikeFair_ |
:) |
| 03:39 |
|
MikeFair_ |
There are two ways to interact with the GAC: the Global Assembly Cache Tool (gacutil.exe) and the Assembly Cache Viewer (shfusion.dll). |
| 03:39 |
|
MikeFair_ |
sorear: Does that help? |
| 03:40 |
|
sorear |
1. it needs to be problematic |
| 03:40 |
|
sorear |
2. the mono gac layout is such that it cannot be quickly scanned on Linux, unless there's a database somewhere I'm missing |
| 03:40 |
|
sorear |
s/problematic/programmatic/ |
| 03:42 |
|
MikeFair_ |
1. totally agreed, 2. Mono has to load them, how does it do it? |
| 03:42 |
|
MikeFair_ |
sorear: I guess I'm just not seeing why you have to scan? Are we building a bunch of *.pm files? |
| 03:42 |
|
sorear |
when mono or mcs wants to load an assembly from the gac, it *knows the name* |
| 03:43 |
|
sorear |
oh, I thought you were recommending a scan |
| 03:43 |
|
sorear |
Note |
| 03:43 |
|
sorear |
You must have administrator privileges to use Gacutil.exe. |
| 03:43 |
|
diakopter |
/o\ |
| 03:43 |
|
MikeFair_ |
sorear: I wonder what shfusion.dll is like... |
| 03:44 |
|
sorear |
it sounds like it's probably related to shell32.dll |
| 03:44 |
|
sorear |
anyways, i don't think a gac scan would buy much at all |
| 03:45 |
|
MikeFair_ |
sorear: And one thing I've never known is whether or not the GAC is literally a Cache (like a local copy perhaps that's stored after a JIT has processed it) or is it the actual installation location |
| 03:45 |
|
sorear |
it is an installation location |
| 03:45 |
|
sorear |
it does not do line-fill/eviction like most "cache"s |
| 03:46 |
|
MikeFair_ |
that location is known at run-time? |
| 03:47 |
|
sorear |
huh? |
| 03:47 |
|
MikeFair_ |
sorear: Perhaps I'm missing something, you were saying that you didn't know the name of the assembly when Perl tried to load it |
| 03:48 |
|
sorear |
MikeFair_: I think at this point I don't understand the problem you are trying to solve |
| 03:48 |
|
sorear |
Currently the syntax is CLR::("assembly name")::Namespace::Class |
| 03:49 |
|
MikeFair_ |
You were having some crazy ideas on how to redo niecza's name binding mechanism so 'use gtk:from<clr gtk-sharp>' Just Works |
| 03:50 |
|
MikeFair_ |
And I thought, likely mistakenly, finding out what assembly to load was a problem |
| 03:51 |
|
sorear |
MikeFair_: No, the problem is with niecza's current insane semantics for scoping of nested names |
| 03:51 |
|
MikeFair_ |
I was also saying that the System.Reflection classes could help with creating an auto-binding |
| 03:51 |
|
sorear |
on the CLR side, the problem is solved |
| 03:52 |
|
sorear |
sorry |
| 03:52 |
|
MikeFair_ |
ahh ok |
| 03:54 |
|
MikeFair_ |
So if i'm hearing you correctly, niezca currently needs to be told about an assembly because dynamically finding it based on the namespace is problematic due to scoping for nested names? |
| 04:04 |
|
sorear |
no. |
| 04:05 |
|
sorear |
it is _by design_ that you need the assembly name |
| 04:05 |
|
sorear |
assembly names are the mechanism by which the CLR tames type name conflicts |
| 04:06 |
|
|
Telgalizer joined #perl6 |
| 04:07 |
|
MikeFair_ |
sorear: ok.... and the GAC for being able to install the same named thing multiple times for different versions |
| 04:07 |
|
sorear |
MikeFair_: the GAC is a weird pariah thing |
| 04:08 |
|
sorear |
it's mostly there to hold copies of System.dll et al |
| 04:08 |
|
sorear |
anything third-party should go into your application directory, the CLR looks there for assemblies |
| 04:08 |
|
MikeFair_ |
sorear: I guess, I see it as how they can install .Net 2.0 and .Net 3.0 on the same box and have each directory holds its own version of "System" |
| 04:08 |
|
* MikeFair_ |
nods. |
| 04:09 |
|
|
birdwindupbird joined #perl6 |
| 04:09 |
|
MikeFair_ |
sorear: Why isn't the namespace sufficient for taming type name conflicts? |
| 04:09 |
|
sorear |
well, where it gets interesting is transitivity |
| 04:09 |
|
sorear |
say module D comes in two versions, D 1.0 and D 2.0, both of which export a type D.D |
| 04:10 |
|
sorear |
module, I mean assembly, B, requires D 1.0 |
| 04:10 |
|
sorear |
assembly C requires D 2.0 |
| 04:10 |
|
MikeFair_ |
sorear: There's a few pages I was reading the other month on when and how you can nest namespaces, mask type names, etc |
| 04:10 |
|
sorear |
D versions 1.0 and 2.0 are not compatible |
| 04:10 |
|
sorear |
assembly A requires both B and C |
| 04:10 |
|
sorear |
this works |
| 04:11 |
|
sorear |
it works because of the way the CLR handles class names as subordinate to assembly full names (including version & pubkey) |
| 04:11 |
|
sorear |
Perl 6 is actually supposed to do something very similar |
| 04:12 |
|
MikeFair_ |
Right and those get embedded in at compile time in CLR land? |
| 04:12 |
|
sorear |
use Foo:auth<cpan:DCONWAY>:ver<1.0> |
| 04:12 |
|
sorear |
yes |
| 04:13 |
|
MikeFair_ |
sorear: But in practice I assume everyone just writes use Foo::auth making the construct nearly useless? |
| 04:13 |
|
sorear |
no. |
| 04:13 |
|
MikeFair_ |
sorear: Are is it been a adopted and accepted as a best practice? |
| 04:13 |
|
MikeFair_ |
s/Are/Or |
| 04:13 |
|
MikeFair_ |
s/is/has/ |
| 04:14 |
|
sorear |
because Foo::auth means nothing unless there is a "use Foo" in scope, and the use statement can define, lexically, an implicit auth/ver |
| 04:14 |
|
sorear |
well, it hasn't been adopted mostly because it hasn't been implemented yet :D |
| 04:14 |
|
MikeFair_ |
hehe - that could be a problem ;) |
| 04:15 |
|
MikeFair_ |
Well I guess what you're now saying then is that if you replaced "cpan" with "clr" you could do something similar? |
| 04:15 |
|
MikeFair_ |
(Or am I skipping ahead too many steps and ending up in the wrong place) |
| 04:18 |
|
sorear |
subtly wrong |
| 04:18 |
|
sorear |
the idea with :auth is that it represents some kind of naming authority |
| 04:19 |
|
sorear |
a URI which represents someone or something that issues names |
| 04:19 |
|
* MikeFair_ |
nods. "Makes sense" |
| 04:19 |
|
sorear |
if cpan:TOM and cpan:DICK decide to use the same module name, there won't be a problem because the authorities are different |
| 04:19 |
|
sorear |
presumably cpan:TOM will not use the same name for unrelated modules, if he's right in the head |
| 04:20 |
|
sorear |
and cpan: IDs are unique becuase they are centrally allocated |
| 04:20 |
|
MikeFair_ |
right |
| 04:21 |
|
sorear |
there is an additional name adverb :from which is more appropriate here |
| 04:21 |
|
sorear |
use Foo means use Foo:from<perl6>:auth(*):ver(*) |
| 04:21 |
|
MikeFair_ |
naming conflicts are easy once that gets distributed and there isn't a central naming authority |
| 04:21 |
|
MikeFair_ |
ahhh |
| 04:21 |
|
MikeFair_ |
I think I see where you're going now |
| 04:22 |
|
sorear |
actually there is one more, :name |
| 04:22 |
|
sorear |
when you say 'use Foo' you are importing a module Foo and you are creating an alias Foo in the lexical scope |
| 04:23 |
|
sorear |
usually, you want them to have the same name |
| 04:23 |
|
sorear |
but the lexical alias has to be a valid Perl 6 identifier, and foreign module names don't always oblige |
| 04:23 |
|
MikeFair_ |
I can see that |
| 04:25 |
|
sorear |
you might do use SWF:from<clr>:name<System.Windows.Forms> |
| 04:25 |
|
MikeFair_ |
Yeah, that's what I was thinking |
| 04:25 |
|
sorear |
as for :auth I would ideally do pk:HASHHERE |
| 04:25 |
|
MikeFair_ |
Though I'm not exactly clear on the distinction between from and auth |
| 04:26 |
|
sorear |
with the usual Perl 6 convention that no auth = any auth is fine, I can't be bothered to check |
| 04:26 |
|
moritz |
\o |
| 04:26 |
|
sorear |
o/ moritz |
| 04:27 |
|
MikeFair_ |
auth = author? |
| 04:27 |
|
MikeFair_ |
which conceptually stands for some unique namespace? |
| 04:27 |
|
sorear |
use Cecil:from<clr>:ver<0.9.4.0>:auth<pk:0738eb9f132ed756>:name<Mono.Cecil> |
| 04:28 |
|
sorear |
is the most complete syntax |
| 04:28 |
|
sorear |
auth = authority |
| 04:28 |
|
sorear |
think like a certificate authority |
| 04:29 |
|
sorear |
Larry's standard grammar starts with rammar STD:ver<6.0.0.alpha>:auth<http://perl.org>; |
| 04:29 |
|
sorear |
s/^/g/ |
| 04:30 |
|
MikeFair_ |
yeah I was thinking that "auth" might go really well with a domain name or a standards body |
| 04:30 |
|
MikeFair_ |
Something that can provide sanity to the names it hosts |
| 04:31 |
|
MikeFair_ |
Can an assembly have the same version and a different public key? |
| 04:34 |
|
|
colomon joined #perl6 |
| 04:35 |
|
MikeFair_ |
auth almost seems like it would be the runtime version |
| 04:35 |
|
MikeFair_ |
and pk part of the version |
| 04:36 |
|
MikeFair_ |
well maybe not auth |
| 04:38 |
|
MikeFair_ |
use Cecil:from<clr 2.0>:ver<v:0.9.4.0,pk:0738eb9f132ed756>:auth<publisher_name>:name<Mono.Cecil> |
| 04:41 |
|
sorear |
you can't put that into ver |
| 04:41 |
|
MikeFair_ |
bbiab |
| 04:41 |
|
sorear |
ver is fixed-format |
| 04:41 |
|
sorear |
also, publisher name is not part of the programmatic name of CLR modules |
| 04:46 |
|
|
kaare_ joined #perl6 |
| 05:09 |
|
|
birdwindupbird joined #perl6 |
| 05:10 |
|
MikeFair_ |
sorear: Well ok then, that settles that :) |
| 05:11 |
|
MikeFair_ |
sorear: auth seems like a great place to put pk :) |
| 05:12 |
|
MikeFair_ |
sorear: It's a bummer about version though, kind of prevents coming up with a better way to track versions in the future :) |
| 05:14 |
|
MikeFair_ |
sorear: Anyway, regardless of that I can't help but remember how excited I was to read Larry's Apocolypses on what Perl6 was to become, I was thinking so many of the same things at the time I read those |
| 05:14 |
|
MikeFair_ |
sorear: a fixed version format seems a trivial price to pay for the rest of all this goodness. :) |
| 05:15 |
|
sorear |
It's linguistically defined so it falls under the language update mechanism |
| 05:15 |
|
sorear |
If Perl 6.3 changes the version syntax, you can enable the new syntax with use v6.3; |
| 05:16 |
|
sorear |
we do a few things differently from the days of the apocalypses. we're much more focused on the present. |
| 05:25 |
|
sorear |
r: my class A::B {}; { my class A::C {}; say A::B } |
| 05:25 |
|
p6eval |
rakudo 196572: OUTPUT«A::B()» |
| 05:26 |
|
sorear |
jnthn: low-priority ping |
| 05:41 |
|
|
crab2313 joined #perl6 |
| 05:55 |
|
MikeFair_ |
sorear: There's a lot here that I'm wanting to learn |
| 06:01 |
|
sorear |
MikeFair_: in my last p6eval line or more generally? |
| 06:01 |
|
sorear |
whee, I have a built Rakudo |
| 06:01 |
|
sorear |
3m26s :D |
| 06:01 |
|
MikeFair_ |
sorear: that seems fast |
| 06:02 |
|
MikeFair_ |
sorear: more generally |
| 06:02 |
|
sorear |
MikeFair_: I started Niecza in large part because in Q2 2010, with the computer I was using at the time, Rakudo builds were more of a 10h thing |
| 06:02 |
|
MikeFair_ |
seeing the word class in Perl code without some pointer next to it will take some getting used to ;) |
| 06:03 |
|
sorear |
"some pointer"? |
| 06:03 |
|
MikeFair_ |
-> |
| 06:03 |
|
MikeFair_ |
or :: |
| 06:03 |
|
sorear |
what's the connection between class and ::/-> in Perl code? |
| 06:04 |
|
MikeFair_ |
sorear: i'm just not used to seeing "class" as a keyword, and the various evolutions in Perl5 (and earlier) have used the module stuff |
| 06:05 |
|
MikeFair_ |
sorear: It's totally a misrepresentation on my part, just a keyword that's new to me for perl. That's all I'm really saying. :) |
| 06:09 |
|
|
erkan joined #perl6 |
| 06:09 |
|
Timbus |
i think a more visible difference is using . instead of -> |
| 06:11 |
|
MikeFair_ |
Timbus: Yeah that too |
| 06:11 |
|
MikeFair_ |
It's going to be cool |
| 06:11 |
|
MikeFair_ |
Hey question, i've actually been really impressed with what the .Net stuff has done with enumerations |
| 06:13 |
|
MikeFair_ |
Anything special in Perl6 regarding enumerations? I mean a lot of it probably doesn't apply because of how strict .net is, but I thought I'd ask |
| 06:15 |
|
benabik |
r: enum A <a b c>; say A::a |
| 06:15 |
|
p6eval |
rakudo 196572: OUTPUT«a» |
| 06:16 |
|
sorear |
n: enum A <a b c>; say A::a # long name |
| 06:16 |
|
sorear |
n: enum A <a b c>; say a # short name |
| 06:16 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«(timeout)[auto-compiling setting]» |
| 06:16 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«(timeout)[auto-compiling setting]» |
| 06:17 |
|
sorear |
ok, I broke niecza on p6eval |
| 06:17 |
|
MikeFair_ |
:) |
| 06:17 |
|
sorear |
r: enum A <a b c>; say A::a # long name |
| 06:17 |
|
benabik |
http://perlcabal.org/syn/S12.html#Enumerations |
| 06:17 |
|
p6eval |
rakudo 196572: OUTPUT«a» |
| 06:17 |
|
sorear |
b: enum A <a b c>; say A::a # short name |
| 06:17 |
|
p6eval |
b 922500: OUTPUT«0» |
| 06:17 |
|
sorear |
r: enum A <a b c>; say A::a # |
| 06:17 |
|
p6eval |
rakudo 196572: OUTPUT«a» |
| 06:17 |
|
sorear |
ignore b |
| 06:17 |
|
sorear |
r: enum A <a b c>; say +A::c # knows its index |
| 06:17 |
|
p6eval |
rakudo 196572: OUTPUT«2» |
| 06:18 |
|
sorear |
r: enum A <a b c>; say A::c.WHAT() # knows its type |
| 06:18 |
|
p6eval |
rakudo 196572: OUTPUT«A()» |
| 06:18 |
|
sorear |
r: enum A <a b c>; say A::c.perl # long name |
| 06:18 |
|
p6eval |
rakudo 196572: OUTPUT«A::c» |
| 06:18 |
|
MikeFair_ |
ok that's cool |
| 06:19 |
|
sorear |
r: enum A <a b c>; say +A("c"); say +A(1); # niecza supports using enums as coercers, but niecza is broken right now, let's see if rakudo works too |
| 06:19 |
|
p6eval |
rakudo 196572: OUTPUT«use of uninitialized value of type A in numeric context in block at /tmp/9dazyzIKWV:101» |
| 06:20 |
|
MikeFair_ |
ok, so there's this one other thing I've been thinking about lately about replacing the base types of int/float/string with infinite enumerables |
| 06:20 |
|
MikeFair_ |
the main reason I've been thinking about it has to do with I/O and internationalization |
| 06:20 |
|
sorear |
what do you mean? why? |
| 06:20 |
|
MikeFair_ |
So let's take int for a second |
| 06:20 |
|
MikeFair_ |
1 2 3 |
| 06:21 |
|
sorear |
int isn't infinite, anyway |
| 06:21 |
|
MikeFair_ |
Well numeric |
| 06:21 |
|
MikeFair_ |
ok string |
| 06:22 |
|
MikeFair_ |
it's not as easy to explain with string |
| 06:22 |
|
sorear |
be advised that type names in Perl 6 are case sensitive and 'int' and 'Int' are entirely different things |
| 06:22 |
|
sorear |
Int is a reference type which points to an integer of arbitrary size |
| 06:22 |
|
sorear |
int is a CPU-level integer |
| 06:23 |
|
MikeFair_ |
Ok let's talk Int then |
| 06:23 |
|
MikeFair_ |
the idea simply is that the string characters used to represent a number exist inside a character set |
| 06:23 |
|
MikeFair_ |
and in different langauges even use different symbols |
| 06:24 |
|
MikeFair_ |
and to some extent, the same number can be represented in different basis |
| 06:25 |
|
MikeFair_ |
(well they most definitely can it's just not as common to speak about Int outside of base10) |
| 06:25 |
|
sorear |
I have a bad feeling about this. |
| 06:26 |
|
MikeFair_ |
The think I was considering was if there was an enumerable type to line up with the character set or locale, it could mapped back to the actual "Int" |
| 06:26 |
|
sorear |
What would be the point? |
| 06:26 |
|
MikeFair_ |
The same number could be expressed by casting it through its enumerable |
| 06:27 |
|
MikeFair_ |
It creates a presentation layer between the machine and the human |
| 06:27 |
|
MikeFair_ |
but it makes it rather transparent to the programmer |
| 06:28 |
|
sorear |
dear #perl6, I am having trouble coming up with a tactful reply |
| 06:28 |
|
MikeFair_ |
sounds good |
| 06:28 |
|
MikeFair_ |
thanks for listening :) |
| 06:28 |
|
sorear |
so I'm not going to say anything at all |
| 06:28 |
|
* MikeFair_ |
withdraws his comments. :) |
| 06:29 |
|
benabik |
I'm not following completely, but skimming it looks like "all we need is another layer of indirection". |
| 06:30 |
|
MikeFair_ |
the idea was that my application could have a locale, which would implicitly select enumerables that knew how to express the concept of that number in a locale specific way |
| 06:31 |
|
sorear |
enumerables are for things you can enumerate. |
| 06:31 |
|
MikeFair_ |
benabik: It's actually more like, We have this layer of indirection that we do poorly or not at all, and maybe there's a better way to do it |
| 06:31 |
|
MikeFair_ |
sorear: You can enumerate Integers |
| 06:31 |
|
sorear |
if you want to add a type coercion from Str to Num, say _that_ instead |
| 06:31 |
|
huf |
is this for code or for formatting numbers in a locale-specific way in output? |
| 06:32 |
|
huf |
or do you want strange integer literals that change their meaning depending on locale? or ... i'm lost |
| 06:33 |
|
MikeFair_ |
huf: they don't change their meaning, just their representation |
| 06:33 |
|
huf |
? |
| 06:33 |
|
sorear |
MikeFair_: did you come from perl6-language@perl.org? |
| 06:33 |
|
MikeFair_ |
huf: it's primarily for input and output with an end user |
| 06:33 |
|
MikeFair_ |
sorear: umm, no, I take it that's not a compliment. ;) |
| 06:33 |
|
huf |
so this is just serialization |
| 06:34 |
|
huf |
i thought this was about internal representation or literals... |
| 06:34 |
|
MikeFair_ |
it's something that crossed my mind when reading about enumerables in .Net that are programmaticly defined |
| 06:34 |
|
MikeFair_ |
Like fibonacci |
| 06:35 |
|
MikeFair_ |
Doing locale specific representation and input |
| 06:35 |
|
sorear |
MikeFair_: I think you are making the mistake of thinking IEnumerable and System.Enum have anything whatsoever to do with each other |
| 06:35 |
|
MikeFair_ |
so yeah it's more about serialization |
| 06:35 |
|
MikeFair_ |
sorear: likely |
| 06:35 |
|
MikeFair_ |
sorear: plus I'm talking about it in Perl6 |
| 06:36 |
|
MikeFair_ |
sorear: So yeah, I'm fairly easily convincable that I should be locked up :) |
| 06:36 |
|
sorear |
This is, I am sorry to say, not a p6-ready idea. We've been shipping compilers for several years now and there will be no modifications to the core language unless you can 1. explain why they are needed in a way convincing to the people whose production code you've just broken 2. implement it in at least one shipping compiler |
| 06:38 |
|
MikeFair_ |
sorear: Totally agreed, I'm not asking for changes, god no, and this _should be_ doable in the existing language |
| 06:38 |
|
MikeFair_ |
sorear: Or not do it |
| 06:38 |
|
MikeFair_ |
sorear: And it shouldn't break any existing code |
| 06:38 |
|
sorear |
Then I don't think I understand you |
| 06:38 |
|
sorear |
It seems like you want to rip out Str and replace it with a gigantic enum |
| 06:39 |
|
MikeFair_ |
sorear: More like Str->enum->Int |
| 06:39 |
|
MikeFair_ |
sorear: If code chooses to do that |
| 06:39 |
|
sorear |
for a purpose having ... something ... to do with locales |
| 06:40 |
|
MikeFair_ |
Yes, to create a distinction between "how we present and receive" a number as separate from the number itself |
| 06:41 |
|
sorear |
well, in an hour or so the #perl6 core folks from Germany, Poland, Norway, and Sweden will be up and we'll be able to have a proper discussion about locales |
| 06:41 |
|
MikeFair_ |
Another use case is for unit s convestion |
| 06:41 |
|
MikeFair_ |
err conversions |
| 06:41 |
|
huf |
so instead of (pseudocode) int parse_int(str s), you'd like int parse_int(str s, enum map) where the default map is an infinitely large enum that maps "0" => 0 and so on? |
| 06:42 |
|
huf |
but you can replace it to "balin" => 0, "dwalin" => 1, .... ? |
| 06:42 |
|
MikeFair_ |
huf: Yeah, and "infinitely large" to me means "some code does the conversion" |
| 06:43 |
|
MikeFair_ |
huf: More like "zero"=>0, "one"=>1 |
| 06:43 |
|
sorear |
MikeFair_: What advantage would this have over just calling the correct codein the first place? |
| 06:44 |
|
MikeFair_ |
And my code could receive "one hundred thousand and sixty" and the number 1,060 could end up in the Int |
| 06:45 |
|
sorear |
FOUR TWO NINER FOUR NINER SIX SEVEN TWO NINER FIVE |
| 06:45 |
|
* sorear |
ducks |
| 06:46 |
|
MikeFair_ |
sorear: That would be another enumerable type that could be defined |
| 06:46 |
|
MikeFair_ |
sorear: hehe :) |
| 06:47 |
|
sorear |
I recognize that this is not a valid form of argument, but INTERCAL has had this feature for decades. |
| 06:47 |
|
MikeFair_ |
sorear: That's interesting.... I didn't know that |
| 06:47 |
|
* MikeFair_ |
feels less insane. |
| 06:51 |
|
MikeFair_ |
Not that any of us would, but we could use a "Roman Numeral" representation |
| 06:51 |
|
MikeFair_ |
Or someone who wanted to have a Roman Numeral calculator |
| 06:51 |
|
* sorear |
waits for MikeFair_ to find and read a definition of INTERCAL |
| 06:51 |
|
sorear |
I would prefer something like Lingua::EN::Number.parse("one") |
| 06:52 |
|
sorear |
it's just a function call, no need to make it fancy |
| 06:52 |
|
sorear |
also Lingua::EN::Number is just a module, so someone other than me can write it |
| 06:52 |
|
MikeFair_ |
Create the enumeration type to do the conversion, then take any perl calculator program and set the new interface locale which uses that representation for I/O |
| 06:54 |
|
MikeFair_ |
sorear: that sounds similar to what I'm talking about |
| 06:54 |
|
|
araujo joined #perl6 |
| 06:54 |
|
|
araujo joined #perl6 |
| 06:54 |
|
MikeFair_ |
The idea is that I have no idea what the end user needs to understand the numbers on the screen |
| 06:55 |
|
sorear |
What do you mean by I/O? |
| 06:55 |
|
sorear |
What if the calculator program uses a GUI? |
| 06:56 |
|
sorear |
What if the calculator program outputs to HTTP? Content-Length: MLMVII isn't going to fly. |
| 06:56 |
|
MikeFair_ |
sorear: by I/O I mean the act of taking a character set and converting it to an Int and vice versa |
| 06:56 |
|
huf |
that sounds like two steps |
| 06:56 |
|
huf |
reading in bytes, taking a charset and getting a string |
| 06:56 |
|
sorear |
We don't use character sets here. |
| 06:57 |
|
huf |
and _then_ figuring out what int that string might represent |
| 06:59 |
|
MikeFair_ |
huf: yes, this is more about the "figuring out what that string meant" and "outputting the meaning of the Int" |
| 06:59 |
|
sorear |
Anyways we got rid of $" outright so I can't see us _adding_ a globabl variable that controls the stringification of Int |
| 06:59 |
|
huf |
but that's not I/O... |
| 06:59 |
|
MikeFair_ |
sorear: The environment shell has one |
| 06:59 |
|
MikeFair_ |
huf: My apologies |
| 07:00 |
|
MikeFair_ |
huf: What do you call that? |
| 07:00 |
|
sorear |
Str/Int type coercions |
| 07:00 |
|
MikeFair_ |
huf: It's such a transparent single thing that rarely gets discussed (at least in the circles I travel in) |
| 07:01 |
|
sorear |
anyways, I had a hell of a time getting Niecza to run on tadzik's machine |
| 07:01 |
|
sorear |
because Niecza uses a partially text-based serialization scheme |
| 07:02 |
|
sorear |
and Polish versions of .NET have a different and incompatible definition of "number" from the US versions, *even when you don't use locale calls* |
| 07:02 |
|
sorear |
I am not going to make 'print 12345' in Niecza locale-sensitive, and I am not budging on this |
| 07:03 |
|
* MikeFair_ |
nods. |
| 07:03 |
|
sorear |
I don't beleive in perpetuating cycles of abuse |
| 07:03 |
|
MikeFair_ |
Me too, my thought is that a lot of the problem is because there's this unexamined assumption of what "print 12345" means |
| 07:04 |
|
sorear |
I could budge on 'say 1234', since say is explicitly intended for human consumption as opposed to protocols |
| 07:04 |
|
MikeFair_ |
sorear: fair enough, what about on the input side |
| 07:04 |
|
sorear |
print 12345 means to output the characters "12345 |
| 07:05 |
|
sorear |
print 12345 means to output the characters "12345"; we define it precisely because it needs to be usable in network protocols |
| 07:05 |
|
sorear |
Perl has no way of telling whether input comes directly from the user or from another program |
| 07:05 |
|
MikeFair_ |
sorear: And those are UTF-8 characters? or Unicode |
| 07:06 |
|
sorear |
There is no such thing as "UTF-8 characters". |
| 07:06 |
|
sorear |
UTF-8 is the name of a reversable function mapping sequences of Unicode code points to sequences of bytes |
| 07:07 |
|
sorear |
If we err on the side of locale sensitivity, code written in the US which does input from other programs will break, often messily, when run in other locales |
| 07:07 |
|
MikeFair_ |
ok, I always just thought of it as an encoding methodology that's different from ASCII and different from Unicode |
| 07:07 |
|
sorear |
If we err on the side of consistency code will be less usable but it won't break outright |
| 07:07 |
|
sorear |
Unicode is not an encoding methodology. |
| 07:08 |
|
sorear |
Some people use Unicode when they mean UTF-16, but they're wrong. |
| 07:09 |
|
MikeFair_ |
Ok, I know that when I'm dealing with character data, if I get the encoding wrong things break |
| 07:09 |
|
sorear |
Perl 6 strings are character data, not byte data, so nothing can break there |
| 07:10 |
|
sorear |
Perl 6 also has a Buf type for byte data |
| 07:10 |
|
MikeFair_ |
What is the internal representation of characters? I mean will it take japanese characters? |
| 07:10 |
|
sorear |
File handles have an associated encodings which allow them to be dwimmy |
| 07:10 |
|
sorear |
Unspecified and undetectable. |
| 07:10 |
|
sorear |
It is required to handle all 0x10FFFE Unicode characters. |
| 07:11 |
|
MikeFair_ |
sorear: So if Unicode isn't an "encoding methodology" but there are things such as Unicode characters, what do you consider Unicode? |
| 07:12 |
|
shachaf |
If a picture isn't an "encoding methodology" but you can still save it in a file, what do you consider a picture? |
| 07:12 |
|
sorear |
Unicode is a map between 21-bit code points like 0x3080 and abstract characters like |
| 07:13 |
|
sorear |
む |
| 07:13 |
|
MikeFair_ |
ok, yeah, I consider "bitmap" an encoding methodology for a picture |
| 07:13 |
|
MikeFair_ |
you can't put a picture in a file |
| 07:14 |
|
sorear |
A character encoding, in general, is an algorithm which transforms sequences of 21-bit code points into (longer) sequences of 8-bit byte |
| 07:14 |
|
MikeFair_ |
you can only put a representation in a file |
| 07:14 |
|
sorear |
You're changing definitions in the middle of the conversation. Stop it. |
| 07:14 |
|
* MikeFair_ |
nods. |
| 07:14 |
|
MikeFair_ |
Yes, clearly I don't have it as clearly delineated as you do yet |
| 07:15 |
|
sorear |
00:07 < MikeFair_> ok, I always just thought of it as an encoding methodology that's different from ASCII and different from Unicode |
| 07:15 |
|
sorear |
00:07 < sorear> Unicode is not an encoding methodology. |
| 07:15 |
|
MikeFair_ |
right |
| 07:15 |
|
sorear |
no. I screwed up there. |
| 07:15 |
|
sorear |
I should have said first "You mean 'character encoding'" |
| 07:16 |
|
moritz |
Unicode is mostly a character repertoire |
| 07:16 |
|
sorear |
yay moritz. |
| 07:16 |
|
moritz |
plus some associated semantics |
| 07:17 |
|
sorear |
moritz: if I understand the gist correctly, MikeFair_ wants to do something to the effect of { temp $*OUT.number-formatter = &Lingua::EN::Number::format; Some::Other::Module::prints_to_stdout; } |
| 07:18 |
|
sorear |
moritz: as someone who maybe has actual experience with l10n and numerics, what do you make of this? |
| 07:19 |
|
moritz |
I don't really have that |
| 07:19 |
|
moritz |
the way to do it is to subclass $*OUT.WHAT and add custom print/say methods though, I'd guess |
| 07:20 |
|
|
SamuraiJack joined #perl6 |
| 07:22 |
|
MikeFair_ |
moritz: one of the assumptions is that the methods to do it the right way have to be assignable at runtime |
| 07:23 |
|
moritz |
MikeFair_: erm, what? |
| 07:23 |
|
moritz |
methods have to be assignable at runtime? |
| 07:23 |
|
moritz |
you can just create the class at compile time, and chose at runtime which one you use |
| 07:24 |
|
moritz |
bog-standard OO polymorphism |
| 07:24 |
|
sorear |
MikeFair_: if you haven't already done so, I recommend you look up what INTERCAL is |
| 07:25 |
|
MikeFair_ |
sorear: I did. I think I understand that you're saying this sounds like a really "trumped up" idea and is something to be made fun of |
| 07:25 |
|
MikeFair_ |
sorear: Obviously I haven't read everything about it yet |
| 07:27 |
|
MikeFair_ |
moritz: I guess I just considered the routines to convert Str <-> Int weren't "interruptable" |
| 07:29 |
|
MikeFair_ |
The main thing I noticed is that programs do "non-US" based thinking and interaction really badly and even the l10n stuff we have is mostly second class and "difficult" |
| 07:30 |
|
MikeFair_ |
and yes, I've had to write some, and my conclusion is that "we haven't figured this part out yet" |
| 07:31 |
|
MikeFair_ |
The enumerables thing was just a clue that I thought gave me some insight. One of the problems is that the string "12345" and the Int 12,345 are too closely coupled |
| 07:32 |
|
moritz |
MikeFair_: I think the real problem with that l10n is that most code isn't clear about which conversions are user-visible, and which aren't |
| 07:32 |
|
moritz |
and l10n must only change user-visible conversions |
| 07:33 |
|
MikeFair_ |
moritz: Well even our code goes into the compiler as strings. It's "user visible" to the developer |
| 07:35 |
|
moritz |
I didn't mean the developer with "user" |
| 07:35 |
|
MikeFair_ |
moritz: I was dawning on me that the concept "12,345" stored in an 'Int' could a bazillion different representations |
| 07:35 |
|
MikeFair_ |
s/I/It |
| 07:37 |
|
MikeFair_ |
especially if you start taking into account what the units are as a second part of the 'Int' (like meters, widgets, dollars) |
| 07:38 |
|
MikeFair_ |
That's where the enumerated types started showing up.... Maybe they should be full blown classes |
| 07:40 |
|
MikeFair_ |
Regardless, you guys have been great at giving me feedback on this here |
| 07:42 |
|
MikeFair_ |
It's not a totally baked suggestion yet, and like sorear showed me, I don't have my terminology sorted out yet |
| 07:43 |
|
dalek |
std: d93fffe | larry++ | / (5 files): |
| 07:43 |
|
dalek |
std: checkpoint STD_P5 mods in case of a bus |
| 07:43 |
|
dalek |
std: |
| 07:43 |
|
dalek |
std: currently parsing 831 lines of viv |
| 07:43 |
|
dalek |
std: review: https://github.com/perl6/std/commit/d93fffe32b |
| 07:44 |
|
TimToady |
the basic principle is that we don't like accidentally generic code, but you can have intentionally generic code if you declare it so |
| 07:44 |
|
TimToady |
most L18n turns out to be accidentally generic |
| 07:44 |
|
|
SamuraiJack joined #perl6 |
| 07:45 |
|
TimToady |
so we tend to dislike locales intensely |
| 07:45 |
|
* TimToady |
goes to see the parade & |
| 07:46 |
|
MikeFair_ |
TimToady: That's interesting... My experience was that it was maddeningly abstract because everything had to be done explicitly |
| 07:47 |
|
MikeFair_ |
TimToady: I can appreciate not wanting anything to happen by accident. |
| 07:49 |
|
MikeFair_ |
TimToady: I haven't quite decided if I like locales yet or not. I clearly appreciate the problem they are attempting to solve and think it's a decent first attempt approach at it. |
| 07:50 |
|
MikeFair_ |
sorear: And for what it's worth, I'm not about to ask you to rewrite anything. It's my itch to scratch if I feel so strongly about it right. :) |
| 07:51 |
|
MikeFair_ |
Thanks guys, good night! :) |
| 08:00 |
|
MikeFair_ |
sorear: So I couldn't resist following up on Intercal before I went to bed. :) |
| 08:01 |
|
MikeFair_ |
sorear: It's pretty hilarious, and I clearly described almost every single one of its idiosyncrocies |
| 08:01 |
|
MikeFair_ |
sorear: That's funny |
| 08:04 |
|
MikeFair_ |
gnight |
| 08:04 |
|
sorear |
gnight |
| 08:16 |
|
masak |
I can see the use for localization. much of the time even s/use/requirement/. |
| 08:16 |
|
masak |
(morning, #perl6) |
| 08:17 |
|
masak |
but I also think I agree about overgeneralizing it being a bad idea. |
| 08:17 |
|
masak |
i18n libs probably become one of those things where you use <10% of the provided functionality, and the rest is dead weight. |
| 08:18 |
|
sorear |
good morning masak. |
| 08:18 |
|
|
Psyche^ joined #perl6 |
| 08:18 |
|
sorear |
in sweden yet? |
| 08:19 |
|
masak |
sorear: morning. yes, been in Sweden since late wednesday evening. :) |
| 08:20 |
|
masak |
sorear: how was the flight back? was the jetlag going west easier to take than the one going east? |
| 08:22 |
|
sorear |
I don't think I particularly experienced it either way |
| 08:23 |
|
sorear |
I went to sleep quite early Fri night, but I think that was a function of not sleeping ~at all Thu night |
| 08:23 |
|
masak |
oh, good to hear. |
| 08:23 |
|
masak |
sometimes jet lag can be quite bad, but it seems you didn't have any of that, then. |
| 08:26 |
|
sorear |
Probably the best way to put it is that jet lag was the least of my problems |
| 08:27 |
|
* shachaf |
always finds GMT+2 -> GMT-8 much easier than GMT-8 -> GMT+2 |
| 08:28 |
|
sorear |
also, when I arrived in GMT+2 I landed in an extremely regimented environment |
| 08:28 |
|
sorear |
Liz and Wendy basically planned out all of our waking hours in advance |
| 08:31 |
|
masak |
shachaf: it seems to vary from person to person. I find going west slightly bothersome, because I *really* need sleep when I get there. |
| 08:32 |
|
moritz |
just limit your travel speed to what you can do by foot (or horse or ship or bycicle) |
| 08:33 |
|
* sorear |
wonders if you can get jet lag on foot deep in the Arctic |
| 08:35 |
|
sorear |
jnthn or anyone else who is interested: I am toying with some ideas for changing lexical package handling in Niecza and I'd like feedback |
| 08:42 |
|
* masak |
is interested |
| 08:42 |
|
moritz |
http://www.pm.org/ has a new design |
| 08:43 |
|
moritz |
I am also interested, but I don't think I can provide the feedback level that sorear++ seeks |
| 08:43 |
|
masak |
oh, I don't think so either. still, I'm willing to listen. maybe I can be the teddy bear outside the sysadmin's office ;) |
| 08:44 |
|
FROGGS_ |
ya, just listen and nod ;o) |
| 08:44 |
|
* masak |
nods |
| 08:45 |
|
FROGGS |
I'm interested too btw, but since I started hacking perl6 just a few days ago I won't be of any help |
| 08:46 |
|
sorear |
well we have a couple of obvious use cases that simply don't work |
| 08:47 |
|
sorear |
because lexicality of package names is limited to the first level only |
| 08:48 |
|
sorear |
if you do 'class Foo::Quux {}; { my class Foo::Bar {}; #`( code here ) }' the outer Foo::Quux cannot be seen because Foo is shadowed by the inner lexical package |
| 08:48 |
|
sorear |
so far it seems like a DIHWIDT but it really causes problems with lexical imports |
| 08:48 |
|
sorear |
use Test; use Test::More; # this doesn't look quite so contrived now does it? |
| 08:49 |
|
sorear |
niecza & rakudo have no way to create a true lexical Test::More, so they bind the second import to 'More' in the Test:: package |
| 08:49 |
|
sorear |
but Test:: isn't private to the compilation unit |
| 08:50 |
|
sorear |
you've just polluted the Test module's namespace |
| 08:50 |
|
sorear |
and anything else in your program that does 'use Test' will see Test::More because of the shared package hash |
| 08:51 |
|
sorear |
so basically what I want to do is to allow lexical names like Test::More |
| 08:51 |
|
sorear |
possibly in a preparsed format |
| 08:51 |
|
masak |
rn: class Foo::Quux { our $x = "OH HAI"; }; { my class Foo::Bar {}; say $Foo::Quux::x } |
| 08:51 |
|
sorear |
this would require a bit of smarts in the MY:: name resolver, but it seems doable |
| 08:52 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«(timeout)[auto-compiling setting]» |
| 08:52 |
|
p6eval |
..rakudo 196572: OUTPUT«OH HAI» |
| 08:52 |
|
masak |
sorear: "cannot be seen..."? it seems to work at least in Rakudo. |
| 08:52 |
|
masak |
as I would very much expect it to. |
| 08:53 |
|
sorear |
masak: rakudo is breaking the other way, then |
| 08:53 |
|
masak |
could you demonstrate "breaking the other way" on p6eval? |
| 08:53 |
|
sorear |
class Foo::Quux { our $x = "OH HAI"; }; { my class Foo::Bar { our $x = "In FooBar"; }; }; say $Foo::Bar::x |
| 08:53 |
|
sorear |
rclass Foo::Quux { our $x = "OH HAI"; }; { my class Foo::Bar { our $x = "In FooBar"; }; }; say $Foo::Bar::x |
| 08:53 |
|
sorear |
r: class Foo::Quux { our $x = "OH HAI"; }; { my class Foo::Bar { our $x = "In FooBar"; }; }; say $Foo::Bar::x |
| 08:53 |
|
p6eval |
rakudo 196572: OUTPUT«In FooBar» |
| 08:53 |
|
masak |
hm. |
| 08:54 |
|
masak |
yeah, that seems odd. |
| 08:55 |
|
sorear |
I think STD did something similar to what I'm proposing |
| 08:55 |
|
sorear |
I thought it was insane in 2010 but now I'm coming around |
| 08:56 |
|
* moritz |
doesn't see the breakage |
| 08:56 |
|
moritz |
there's just one $Foo::Bar::x |
| 08:57 |
|
moritz |
and you assign twice to it, so of course it prints the second value |
| 08:57 |
|
sorear |
No, I only assign once to it |
| 08:57 |
|
masak |
moritz: it's visible outside the lexical scope of Foo::Bar |
| 08:58 |
|
sorear |
Foo::Bar is a my package, it ought not to be visible from outside the blcok |
| 08:58 |
|
moritz |
masak: sure, because you said "our" |
| 08:58 |
|
moritz |
ok, so the real question is "what does 'our' mean"? |
| 08:58 |
|
masak |
moritz: something *inside* a 'my' package is visible outside of that 'my' package's scope. |
| 08:58 |
|
sorear |
r: class Foo::Quux {}; { my class Foo::Bar { method hi() { "OH HAI" }; }; }; say Foo::Bar.hi |
| 08:58 |
|
p6eval |
rakudo 196572: OUTPUT«OH HAI» |
| 08:58 |
|
sorear |
# look moritz no our in sight |
| 08:59 |
|
sorear |
I used to think this is OK, but MikeFair_ made me take a step back |
| 08:59 |
|
masak |
moritz: it'd be like the hash keys of a lexical hash variable could be declared "our" and then made visible outside of the hash's lexical scope. |
| 08:59 |
|
moritz |
masak: that's totally analogous to { our $x = 3; } ; our $x; say $x |
| 08:59 |
|
moritz |
masak: there you have a lexical block, and you can still see an our-variable from the outside |
| 08:59 |
|
sorear |
r: my class Foo::Quux {}; { my class Foo::Bar { method hi() { "OH HAI" }; }; }; say Foo::Bar.hi |
| 08:59 |
|
p6eval |
rakudo 196572: OUTPUT«OH HAI» |
| 09:00 |
|
masak |
moritz: no, it's not analogous. because the package that $x is declared in there is an 'our' package. |
| 09:00 |
|
moritz |
sorear: so the problem is that namespaces with :: only work as 'our'? |
| 09:00 |
|
sorear |
Yes |
| 09:01 |
|
* masak |
finds that while he may not be very informed on these issues, he certainly is opinionated ;) |
| 09:01 |
|
sorear |
It's clearly working as designed |
| 09:01 |
|
moritz |
ok, crazy idea |
| 09:02 |
|
moritz |
what if we just stored 'Foo::Bar' in a lexical scope? |
| 09:02 |
|
moritz |
if it's my class Foo::Bar { } |
| 09:02 |
|
moritz |
instead of going through the Foo/Bar hierarchy |
| 09:02 |
|
sorear |
moritz: that's what I just proposed, only more concisely. moritz++ |
| 09:03 |
|
moritz |
that means I'm not totally off track then :-) |
| 09:04 |
|
sorear |
the single biggest flaw I see is that it breaks the Foo::Bar - Foo.WHO<Bar> equivalence |
| 09:04 |
|
sorear |
which ISTR jnthn being fond of |
| 09:05 |
|
moritz |
I haven't really thought it through |
| 09:05 |
|
moritz |
what about our-classes? |
| 09:05 |
|
moritz |
if we have |
| 09:05 |
|
moritz |
our class A::B { our class C::D { } } |
| 09:05 |
|
moritz |
and |
| 09:06 |
|
moritz |
our class A { our class B::C { } } |
| 09:06 |
|
moritz |
etc. |
| 09:06 |
|
masak |
I'm for the above idea too. in fact, I thought it worked like that already. |
| 09:06 |
|
moritz |
can we make sure that lookup of A::B::C::D doesn't have to go through ridiculously many possible combinations? |
| 09:07 |
|
sorear |
moritz: I was imagining that lexicality only applies to prefixes, and greedily takes the longest |
| 09:07 |
|
sorear |
I'll go look at what STD is doing |
| 09:08 |
|
* moritz |
tries to process that |
| 09:08 |
|
moritz |
std: A::B |
| 09:08 |
|
p6eval |
std d93fffe: OUTPUT«===[0mSORRY!===[0m�Undeclared name:� 'A::B' used at line 1�Check failed�FAILED 00:00 40m�» |
| 09:08 |
|
moritz |
std: my class A::B { our class C::D { } }; C::D |
| 09:08 |
|
p6eval |
std d93fffe: OUTPUT«===[0mSORRY!===[0m�Undeclared name:� 'C::D' used at line 1�Check failed�FAILED 00:00 41m�» |
| 09:08 |
|
moritz |
std: my class A::B { our class C::D { } }; A::B::C::D |
| 09:08 |
|
p6eval |
std d93fffe: OUTPUT«ok 00:00 41m» |
| 09:08 |
|
sorear |
is A::B::C::D in %*CURLEX? No. Is A::B::C? No. Is A::B? Yes! (alias installed by our class). Let's look for C::D under the A::B class alias |
| 09:09 |
|
masak |
right. |
| 09:09 |
|
moritz |
and if not, you still have to go looking A, right? |
| 09:09 |
|
masak |
so it's not "ridiculously many possible combinations", it's a linear thing. |
| 09:09 |
|
moritz |
and then in A, look for B::C::D, recursively |
| 09:09 |
|
moritz |
oh no |
| 09:09 |
|
masak |
hm, troo. |
| 09:09 |
|
moritz |
now I understand |
| 09:10 |
|
moritz |
I think what sorear++ meant was that this is only done for the first level |
| 09:10 |
|
moritz |
so no recursion |
| 09:10 |
|
sorear |
right |
| 09:10 |
|
sorear |
because the package entries point to packages, not lexpads |
| 09:10 |
|
sorear |
recursion wouldn't make sense, typologically |
| 09:11 |
|
masak |
oh good. |
| 09:11 |
|
masak |
I don't understand why that is, but I'm releaved that it is :) |
| 09:12 |
|
moritz |
masak: a use case for macros \o/ http://blog.racket-lang.org/20[…]d-merge-sort.html |
| 09:13 |
|
masak |
moritz: nice. |
| 09:13 |
|
moritz |
that could be kind of a "man-or-boy" test for a macro implementation :-) |
| 09:13 |
|
masak |
moritz: I think with what's in nom now, we can do that. let me try during the day :0 |
| 09:13 |
|
masak |
:) |
| 09:14 |
|
masak |
moritz++ |
| 09:14 |
|
* felher |
wants to see that using perl6 macros :) |
| 09:14 |
|
sorear |
o/ felher |
| 09:15 |
|
felher |
o/ sorear |
| 09:17 |
|
moritz |
I don't want to discourage you, but I wonder how recursive macros can work when there's a big bug in the hygiene |
| 09:17 |
|
masak |
heh :) |
| 09:17 |
|
masak |
it's big bug, but I expect to find and fix that one quickly. |
| 09:17 |
|
masak |
I'm more concerned about the other, more subtle bug that I know about. |
| 09:17 |
|
sorear |
What big bug? |
| 09:18 |
|
masak |
sorear: seems unquotes get the macro's lexical scope, not the mainline's. |
| 09:18 |
|
masak |
r: macro foo($x) { my $v = "inside"; quasi { {{{$v}}}() } }; my $v = "outside"; say foo sub { $v } |
| 09:18 |
|
p6eval |
rakudo 196572: OUTPUT«===SORRY!===Can not get non-existent attribute '$!past' on class 'AST'» |
| 09:18 |
|
masak |
:/ |
| 09:19 |
|
masak |
ok, that's not the failure mode I wanted to demonstrate.... |
| 09:20 |
|
moritz |
http://irclog.perlgeek.de/perl[…]2-08-25#i_5930171 |
| 09:20 |
|
masak |
r: macro call($a) { my $x = "how very"; quasi { say $x; {{{$a}}}() } }; my $x = "lexical"; call { say $x } |
| 09:20 |
|
p6eval |
rakudo 196572: OUTPUT«how veryhow very» |
| 09:20 |
|
masak |
r: macro foo($x) { my $v = "inside"; quasi { {{{$v}}}() } }; my $v = "outside"; say foo { say $v } |
| 09:20 |
|
p6eval |
rakudo 196572: OUTPUT«===SORRY!===Can not get non-existent attribute '$!past' on class 'AST'» |
| 09:21 |
|
masak |
r: macro foo($x) { my $v = "inside"; quasi { say $v; {{{$v}}}() } }; my $v = "outside"; say foo { say $v } |
| 09:21 |
|
p6eval |
rakudo 196572: OUTPUT«===SORRY!===Can not get non-existent attribute '$!past' on class 'AST'» |
| 09:21 |
|
masak |
hm... what's different between 'call' and 'foo'? |
| 09:21 |
|
masak |
oh! |
| 09:21 |
|
masak |
r: macro foo($x) { my $v = "inside"; quasi { say $v; {{{$x}}}() } }; my $v = "outside"; foo { say $v } |
| 09:21 |
|
p6eval |
rakudo 196572: OUTPUT«insideinside» |
| 09:21 |
|
masak |
there we go. |
| 09:22 |
|
masak |
ah, and the LTA error message is because there's not AST typecheck on unquote trees. |
| 09:22 |
|
* masak |
makes a note to add that ASAP |
| 09:23 |
|
ChoHag |
Well that's a bit shit. Emacs thinks the contents of a heredoc is just more code and tries to indent it. |
| 09:24 |
|
ChoHag |
(Not perl 6, just randing) |
| 09:24 |
|
ChoHag |
(ranting) |
| 09:25 |
|
sorear |
to be fair multiline contextual constructs like regex blocks and heredocs and pod blocks are pretty hard on editors in general |
| 09:25 |
|
masak |
they're pretty hard on parsers, too :) |
| 09:25 |
|
sorear |
I think it would be nice if we had single-line versions of the abovew |
| 09:26 |
|
ChoHag |
Single-line multi line heredocs? |
| 09:26 |
|
sorear |
ChoHag: you can make a block comment editor-friendly by prefixing each line with # |
| 09:27 |
|
sorear |
what if there was something you could use to prefix each line of a heredoc? |
| 09:27 |
|
ChoHag |
Ah. |
| 09:27 |
|
sorear |
masak: a code-aware editor is a parser that has to be able to parse malformed documents starting from the middle of the file :D |
| 09:27 |
|
masak |
something like that. |
| 09:28 |
|
masak |
seems to me a savvy editor would save intermediate parse states in order not to have to parse the whole document each time. |
| 09:28 |
|
sorear |
editing STD.pm6 gets very annoying when vim's highlighter decides to start in the middle of a regex and then messes up the entire screen |
| 09:28 |
|
sorear |
well, you can do that, but then any edit requires a huge amount of reparsing |
| 09:30 |
|
ChoHag |
If when parsing you save the state of the parse every n-hundred bytes, then a change at byte 706 doesn't have to parse the first 700 bytes. |
| 09:30 |
|
ChoHag |
And the rest can be ignored until it's visible. |
| 09:30 |
|
ChoHag |
Or something like that. |
| 09:32 |
|
|
broquaint joined #perl6 |
| 09:33 |
|
sorear |
wait. |
| 09:34 |
|
sorear |
n: say qq:to[OUTER]; hello { qq:to[INNER] } world insidestuff INNER more stuff OUTER |
| 09:34 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«(timeout)[auto-compiling setting]» |
| 09:34 |
|
sorear |
evalbot control restart |
| 09:36 |
|
|
p6eval joined #perl6 |
| 09:37 |
|
sorear |
moritz, why do I get rsync error: unexplained error (code 255) at io.c(605) [sender=3.0.9] when p6eval restarts? |
| 09:37 |
|
sorear |
n: say qq:to[OUTER]; hello { qq:to[INNER] } world insidestuff INNER more stuff OUTER |
| 09:37 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«Unhandled exception: Here document used before body defined at /home/p6eval/niecza/boot/lib/CORE.setting line 1402 (die @ 5)  at /home/p6eval/niecza/src/Op.pm6 line 331 (HereStub.zyg @ 5)  at /home/p6eval/niecza/src/Op.pm6 line 23 (Op.ctxzyg @ 4)  … |
| 09:39 |
|
sorear |
perl 6: might be the first language to support NESTED HERE DOCUMENTS |
| 09:40 |
|
dalek |
evalbot: 3bb2f7e | sorear++ | evalbot.pl: |
| 09:40 |
|
dalek |
evalbot: p6eval only sees the costs of installable mode, so force inplace mode for niecza |
| 09:40 |
|
dalek |
evalbot: review: https://github.com/perl6/evalb[…]commit/3bb2f7ec54 |
| 09:41 |
|
moritz |
sorear: I have no clue |
| 09:41 |
|
sorear |
I found the problem |
| 09:42 |
|
sorear |
I ran 'git pull' in the evalbot dir and it pulled changes to rsync handling |
| 09:42 |
|
sorear |
which had been in the github repo but not live since Aug 2 or so |
| 09:45 |
|
|
p6eval joined #perl6 |
| 09:45 |
|
sorear |
moritz: what is "ulimit -u 80" intended to accomplish? |
| 09:47 |
|
sorear |
looks like on feather3 "ulimit -u" is supported by bash but not by dash |
| 09:48 |
|
masak |
hm, I can't really use dies_ok with macros I know are going to fail during application... |
| 09:48 |
|
masak |
(because application is at compile time) |
| 09:48 |
|
masak |
I think I will need to use an eval() there. |
| 09:49 |
|
sorear |
you need to use ... eval_dies_ok! |
| 09:49 |
|
masak |
ah! |
| 09:49 |
|
sorear |
and put the macro inside the eval block, hmm |
| 09:49 |
|
mst |
http://p3rl.org/Test::Fatal |
| 09:49 |
|
mst |
^^ this API replaces all the Test::Exception rubbish nicely |
| 09:49 |
|
mst |
simpler, more orthogonal, more pleasant to work with |
| 09:50 |
|
masak |
mst: I've seen that one before. it's nice. |
| 09:50 |
|
masak |
agree about "more orthogonal". |
| 09:50 |
|
mst |
the only reason Test::Exception is useful is that it can do various bits of caller() and etc. hackery and my argument would be that that's more a "working around 5core limitations" thing than a feature |
| 09:50 |
|
|
JimmyZ joined #perl6 |
| 09:51 |
|
masak |
it might be too late to do a full switchover for S24 :/ |
| 09:51 |
|
mst |
what's S24 ? |
| 09:51 |
|
masak |
the testing synopsis. |
| 09:51 |
|
masak |
I'm guessing it specifies eval_dies_ok et al. |
| 09:52 |
|
masak |
if people think it's a good idea to make Perl 6's Test.pm API more like Test::Fatal, I'm willing to work on that a bit. |
| 09:52 |
|
masak |
essentially try it out in a branch and prepare a patch that switches us over. |
| 09:52 |
|
mst |
I would suggest that, instead, you add the exception { ... } construct |
| 09:52 |
|
mst |
and then wait and see which you find it easier to explain to people how to write tests using |
| 09:52 |
|
masak |
nod. |
| 09:53 |
|
masak |
I like that idea. |
| 09:53 |
|
mst |
since it occurs to me that the converse of my previous statement could be valid as well |
| 09:53 |
|
moritz |
there's no reason not provide both for a while |
| 09:53 |
|
masak |
right. |
| 09:53 |
|
mst |
in that it may be that it's the workarounds ib T::Exception |
| 09:53 |
|
masak |
mst++ # suggestion |
| 09:53 |
|
mst |
that make Test::Fatal superior |
| 09:53 |
|
mst |
also, one could build the lives_ok etc. -atop- the exception { construct |
| 09:53 |
|
mst |
once they become trivial sugar |
| 09:53 |
|
mst |
I mean |
| 09:54 |
|
mst |
lives_ok = f ($block, $words) { is(!exception($block), $words); }; |
| 09:54 |
|
mst |
for example |
| 09:54 |
|
dalek |
roast: 7e37729 | masak++ | S06-macros/macros-d2.t: |
| 09:54 |
|
dalek |
roast: [S06-macros/macros-d2.t] new test file |
| 09:54 |
|
dalek |
roast: review: https://github.com/perl6/roast/commit/7e37729213 |
| 09:54 |
|
mst |
then they're hardly going to be a maint bruden |
| 09:55 |
|
mst |
masak: while I'm here I'd like to help ensure that #perl6 avoids as many perl5 mistakes as possible |
| 09:55 |
|
dalek |
rakudo/nom: d21d35d | masak++ | t/spectest.data: |
| 09:55 |
|
dalek |
rakudo/nom: [spectest.data] added macros-d2.t |
| 09:55 |
|
dalek |
rakudo/nom: review: https://github.com/rakudo/raku[…]commit/d21d35d04d |
| 09:55 |
|
moritz |
note that either you'd need to write isa_ok exception({block}), X::Foo # with parens |
| 09:55 |
|
masak |
reviews on the above file are very welcome. |
| 09:55 |
|
mst |
masak: that way you can make all new mistakes that I can learn something from :D |
| 09:56 |
|
moritz |
or we'd have make exception a prefix operator |
| 09:56 |
|
masak |
"Perl 5 and Perl 6: two very good sets of complementary mistakes" |
| 09:56 |
|
moritz |
(because we have no function prototypes in p6) |
| 09:57 |
|
moritz |
masak: reviewing |
| 09:57 |
|
moritz |
masak: first of all, can haz better tets file name puleze? |
| 09:57 |
|
moritz |
d2 makes sense from your perspective, but not from anybody elses |
| 09:57 |
|
masak |
moritz: good point. I can do that. |
| 09:58 |
|
moritz |
after reading "macro podolsky" I went like "and where is rosen"? |
| 09:58 |
|
moritz |
and then I scrolled down |
| 09:58 |
|
moritz |
masak++ |
| 09:59 |
|
masak |
:) |
| 09:59 |
|
moritz |
masak: the last test is wrong |
| 09:59 |
|
moritz |
masak: 'cause eval_dies_ok evals in the context of eval_dies_ok, not in the context of your sub |
| 10:00 |
|
moritz |
s/sub/code/ |
| 10:00 |
|
moritz |
so it doesn't see macro bohm |
| 10:00 |
|
moritz |
(which is why the test succeeds, even though the feature you are trying to test doesn't work |
| 10:01 |
|
masak |
moritz: er. |
| 10:01 |
|
masak |
moritz: oh! |
| 10:01 |
|
masak |
moritz: you're saying eval_dies_ok's context is inside of Test.pm? |
| 10:01 |
|
moritz |
masak: correct |
| 10:01 |
|
masak |
because it's a string, so it doesn't have closure semantics.... |
| 10:01 |
|
masak |
shoulda seen that, yes. |
| 10:01 |
|
moritz |
I'd love to change that, it's a very common mistake |
| 10:02 |
|
moritz |
but &eval doesn't have an option for evalling in a different context |
| 10:03 |
|
sorear |
masak: what was the bug with einstein? |
| 10:03 |
|
sorear |
02:49 < sorear> and put the macro inside the eval block, hmm |
| 10:03 |
|
moritz |
(&eval is probably the wrong abstractioin level to add that though. We should have a &compile function that compiles the code but doesn't run it yet, and that one can have such strings and wires attached like compiling in a different context) |
| 10:04 |
|
masak |
sorear: einstein works in rakudo. |
| 10:05 |
|
masak |
sorear: podolsky doesn't currently, even though it should be equivalent. |
| 10:05 |
|
masak |
& |
| 10:05 |
|
moritz |
[1] 8244 |
| 10:06 |
|
moritz |
now you can just type 'fg 1' to summon masak++ again :-) |
| 10:07 |
|
ChoHag |
Free ++ with every &? |
| 10:07 |
|
sorear |
OH |
| 10:08 |
|
|
drejk joined #perl6 |
| 10:08 |
|
|
spider-mario joined #perl6 |
| 10:09 |
|
sorear |
r: macro foo() { quasi { 2 }; }; say foo |
| 10:09 |
|
p6eval |
rakudo d21d35: OUTPUT«2» |
| 10:09 |
|
sorear |
r: macro foo() { my $q = quasi { 0 }; $q = quasi { 1 + {{{$q}}} } for ^5; $q }; say foo |
| 10:09 |
|
p6eval |
rakudo d21d35: OUTPUT«1» |
| 10:10 |
|
sorear |
nm |
| 10:10 |
|
sorear |
& |
| 10:11 |
|
moritz |
r: macro upto($a, $b) { return quasi { $a } unless $b; return upto(quasi { 1 + {{{$a}}} }, $b - 1 }; say upto(0, 5) |
| 10:11 |
|
p6eval |
rakudo d21d35: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2, near "}; say upt"» |
| 10:11 |
|
moritz |
r: macro upto($a, $b) { return quasi { $a } unless $b; return upto(quasi { 1 + {{{$a}}} }, $b - 1) }; say upto(0, 5) |
| 10:11 |
|
p6eval |
rakudo d21d35: OUTPUT«===SORRY!===Cannot call 'Numeric'; none of these signatures match::(Mu:U \v, Mu *%_)» |
| 10:18 |
|
ChoHag |
Does perl 6 have a DBI-like (specifically, postgres) module? |
| 10:19 |
|
arnsholt |
jnthn: Any particular reason NativeHOW.nativesize expects an argument besides the invocant, since it just returns the size? |
| 10:20 |
|
FROGGS |
ChoHag: https://github.com/perl6/DBIish/ |
| 10:20 |
|
FROGGS |
since its on modules.perl6.org I can guess its in rakudo*? |
| 10:22 |
|
ChoHag |
Cheers |
| 10:29 |
|
moritz |
FROGGS: the reasoning isn't valid, but it's still in R* |
| 10:30 |
|
moritz |
and yes, it supports postgresql. With prepared statements and placeholders |
| 10:30 |
|
moritz |
. |
| 10:47 |
|
arnsholt |
Mmmm. Debug printf output in my compiler ^_^ |
| 10:48 |
|
|
MayDaniel joined #perl6 |
| 10:53 |
|
moritz |
are you debugging output from printf? or using printf to debug? |
| 10:55 |
|
arnsholt |
The latter, thankfully =) |
| 10:55 |
|
arnsholt |
Making sure I get the right numbers in my metamodel hackery (actually storing and using sizes for native types) |
| 11:28 |
|
FROGGS |
arnsholt: I can pass my callback sub just like: thing_that_takes_a_cb( &subname ) |
| 11:28 |
|
FROGGS |
right? |
| 11:28 |
|
arnsholt |
Yup |
| 11:29 |
|
FROGGS |
passing a anonymous sub and passing a $subref doesnt work right now? |
| 11:30 |
|
arnsholt |
Dunno, TBH |
| 11:30 |
|
arnsholt |
Did you try? |
| 11:31 |
|
FROGGS |
I did, no warnings, but the callback doesnt get called |
| 11:31 |
|
arnsholt |
Huh. That's a bit odd, I guess |
| 11:33 |
|
arnsholt |
I'll try to look into it |
| 11:34 |
|
FROGGS |
cool, great, thanks |
| 11:35 |
|
|
tokuhiro_ joined #perl6 |
| 11:35 |
|
FROGGS |
passung Mu as the arg will end up as a NULL in C? |
| 11:35 |
|
FROGGS |
passing |
| 11:36 |
|
arnsholt |
I think so |
| 11:36 |
|
arnsholt |
But most often you'll want to pass the type object |
| 11:37 |
|
FROGGS |
I mean, it works as expected (callback get unregistered) but I want to make sure |
| 11:37 |
|
FROGGS |
type object? |
| 11:38 |
|
FROGGS |
like the type identifier of a subroutine reference? |
| 11:38 |
|
FROGGS |
is it "Code"? |
| 11:40 |
|
|
whiteknight joined #perl6 |
| 11:40 |
|
FROGGS |
k, passing Code works too... its like it is some sort of bitch, no complains, just takes everything |
| 11:46 |
|
|
thelazydeveloper joined #perl6 |
| 11:57 |
|
arnsholt |
FROGGS: The type object is part of the meta-object protocol |
| 11:58 |
|
dalek |
roast: 8e15845 | masak++ | S06-macros/macros-d2.t: |
| 11:58 |
|
dalek |
roast: [macros-d2.t] fix mis-context |
| 11:58 |
|
dalek |
roast: |
| 11:58 |
|
dalek |
roast: moritz++ for pointing this out: strings aren't passed as |
| 11:58 |
|
dalek |
roast: closures, and eval_dies_ok evaluates things in Test.pm's |
| 11:58 |
|
dalek |
roast: lexical context. moving the macro into the string fixes |
| 11:58 |
|
dalek |
roast: it. |
| 11:58 |
|
dalek |
roast: review: https://github.com/perl6/roast/commit/8e158459ed |
| 11:58 |
|
arnsholt |
When you say "my $x = Something.new" or "my Something $x .= new" what happens is that a method is invoked on the Something metaobject |
| 11:59 |
|
arnsholt |
And the type object of a class is used as a typed undef value, which makes sense for NULL values |
| 12:00 |
|
dalek |
roast: 0710d57 | masak++ | S06-macros/ (4 files): |
| 12:00 |
|
dalek |
roast: [S06-macros] gave test files more descriptive names |
| 12:00 |
|
dalek |
roast: |
| 12:00 |
|
dalek |
roast: moritz++ for suggestion. now they are not tied to the |
| 12:00 |
|
dalek |
roast: grant milestones, but to what functionality they |
| 12:00 |
|
dalek |
roast: exercise... just like the rest of the test suite. |
| 12:00 |
|
dalek |
roast: review: https://github.com/perl6/roast/commit/0710d57620 |
| 12:02 |
|
dalek |
rakudo/nom: f7ec305 | masak++ | t/spectest.data: |
| 12:02 |
|
dalek |
rakudo/nom: [spectest.data] chased macro test files rename |
| 12:02 |
|
dalek |
rakudo/nom: review: https://github.com/rakudo/raku[…]commit/f7ec305a7b |
| 12:23 |
|
|
tokuhiro_ joined #perl6 |
| 12:29 |
|
|
tokuhiro_ joined #perl6 |
| 13:02 |
|
* arnsholt |
is starting to really like tmux |
| 13:10 |
|
|
cognominal joined #perl6 |
| 13:13 |
|
* JimmyZ |
is using byobu, which is tmux-based |
| 13:14 |
|
masak |
ah; nice name for a screen-like application :) |
| 13:16 |
|
arnsholt |
Hmm. Looks interesting |
| 13:17 |
|
arnsholt |
Although, I already have much of what it prints out in my xmobar status line |
| 13:18 |
|
|
birdwindupbird joined #perl6 |
| 13:18 |
|
FROGGS |
arnsholt: is there a way to declare default argument values using NativeCall? like: our sub my_sub( int $a, int $b = -1) is native ... |
| 13:18 |
|
FROGGS |
when trying it and calling this sub with only one arg I get a coredump |
| 13:18 |
|
arnsholt |
Don't think that'll work |
| 13:19 |
|
arnsholt |
What you'll probably want to do if you want that functionality is create a wrapper Perl 6 function that calls the dyncall function |
| 13:19 |
|
FROGGS |
is it on the wishlist already? :P |
| 13:19 |
|
arnsholt |
Nope, hadn't really considered that one |
| 13:19 |
|
FROGGS |
arnsholt: I did that too (wrapper func), but it crashes as well |
| 13:19 |
|
arnsholt |
That's odd... |
| 13:19 |
|
FROGGS |
ya |
| 13:19 |
|
FROGGS |
the subs have different names btw, its no multi stuff |
| 13:20 |
|
arnsholt |
What happens if you just call the C function directly? |
| 13:20 |
|
FROGGS |
when I call it with all args, it does what it should (plays music actually) |
| 13:21 |
|
arnsholt |
That's odd |
| 13:21 |
|
arnsholt |
Could you gist the relevant bits, perhaps? |
| 13:21 |
|
FROGGS |
that crashes: https://github.com/PerlGameDev[…]/Channels.pm6#L10 |
| 13:22 |
|
FROGGS |
its not much though |
| 13:23 |
|
arnsholt |
Huh. Odd |
| 13:26 |
|
arnsholt |
Not sure what's going on |
| 13:26 |
|
arnsholt |
Could you try running it through gdb? |
| 13:26 |
|
arnsholt |
See where it segfaults |
| 13:29 |
|
FROGGS |
I will, gtg for a walk now, will report to you then |
| 13:30 |
|
arnsholt |
Excellent |
| 13:33 |
|
|
MayDaniel joined #perl6 |
| 13:46 |
|
|
josp joined #perl6 |
| 13:47 |
|
|
kaare_ joined #perl6 |
| 13:49 |
|
masak |
nwc10++ # nicest "how do I unsubscribe?" reply I've ever read, on p6c |
| 13:50 |
|
masak |
I also found myself thinking "whatever this guy has a PhD in, I bet it isn't mailing lists" :) people have different backgrounds. |
| 13:55 |
|
|
daxim joined #perl6 |
| 14:12 |
|
|
marmay joined #perl6 |
| 14:13 |
|
frettled |
masak: yep. And looking in message headers isn't necessarily trivial in a modern GUI-based email client, they mostly hide it somewhere for experts. |
| 14:15 |
|
|
simcop2387 joined #perl6 |
| 14:17 |
|
masak |
I'm not sure I'd think to look there, actually. |
| 14:18 |
|
frettled |
One of the points of the list-headers is to make it easy for email clients to identify mailinglists _and_ to unsubscribe. Look at how well that's panning out. :( |
| 14:21 |
|
* masak |
likes this quote from the distant past: http://irclog.perlgeek.de/perl[…]5-06-28#i_-584545 |
| 14:22 |
|
pmichaud |
good afternoon, #perl6 |
| 14:23 |
|
ChoHag |
How do you call up the pod of an installed module? |
| 14:23 |
|
geekosaur |
as for the list headers, they are indeed for clients. don't think I've seen a clientother than gmail that offers unsubscribe etc. to the actual user |
| 14:24 |
|
|
xinming joined #perl6 |
| 14:24 |
|
masak |
good morning, pmichaud. |
| 14:25 |
|
ChoHag |
Reality isn't all it's cracked up to be. |
| 14:25 |
|
ChoHag |
It can barely be said to exist, for one thing. |
| 14:25 |
|
pmichaud |
...morning? |
| 14:25 |
|
pmichaud |
hmmmm |
| 14:25 |
|
masak |
pmichaud: UGT, Universal Greeting Time. |
| 14:25 |
|
pmichaud |
wfm |
| 14:25 |
|
pmichaud |
it's morning in #perl6, the dawn of a new era |
| 14:25 |
|
pmichaud |
or something like that. |
| 14:38 |
|
arnsholt |
jnthn is at the MOP hacakthon thingy these days, right? |
| 14:53 |
|
pmichaud |
arnsholt: yes. |
| 14:53 |
|
|
Circlepuller joined #perl6 |
| 14:56 |
|
spider-mario |
I now provide arch linux builds of rakudo star. :) |
| 14:56 |
|
spider-mario |
a pacman repository. |
| 14:57 |
|
spider-mario |
[rakudo] |
| 14:57 |
|
spider-mario |
Server = http://spidermario.free.fr/archlinux/$repo/$arch |
| 14:59 |
|
masak |
\o/ |
| 15:01 |
|
ChoHag |
Are there docs anywhere describing a simple perl6 tcp server? |
| 15:02 |
|
ChoHag |
Also, has anything like an http daemon been written, or even something more freaky like rest or soap? |
| 15:05 |
|
JimmyZ |
ChoHag: https://github.com/tadzik/Bailador |
| 15:06 |
|
ChoHag |
That looks even better. |
| 15:06 |
|
pmichaud |
ChoHag: : https://github.com/mberends/http-server-simple/ |
| 15:07 |
|
pmichaud |
I'm afk for a while -- bbl |
| 15:07 |
|
JimmyZ |
ChoHag: and https://github.com/tadzik/zblog |
| 15:10 |
|
|
GlitchMr joined #perl6 |
| 15:13 |
|
|
perl5 joined #perl6 |
| 15:14 |
|
masak |
perl5: hi. I saw you on the back of lots of YAPC::Europe t-shirts. :) |
| 15:24 |
|
|
ponbiki joined #perl6 |
| 15:28 |
|
jnthn |
ohhai o/ |
| 15:30 |
|
arnsholt |
jnthn: \o/ |
| 15:32 |
|
arnsholt |
I'm having some trouble extracting the nativesize stuff in the P6{int,num} REPRs |
| 15:34 |
|
masak |
jnthn! \o/ |
| 15:34 |
|
jnthn |
arnsholt: I could tell you how, but I'm gonna change the answer pretty shortly... |
| 15:35 |
|
arnsholt |
Aha. Might as well wait for the new answer then =) |
| 15:35 |
|
jnthn |
dammit, libuv builds fine as a .lib but I can't get it to build as a .dll |
| 15:40 |
|
ingy |
greetings. seeking 2 things. 1) the current perl6 grammar. 2) A succinct idiom comparison between perl5 and perl6. |
| 15:42 |
|
masak |
ingy: (1) https://github.com/perl6/std/blob/master/STD.pm6 |
| 15:43 |
|
diakopter |
(2) that would be lovely to me as well |
| 15:43 |
|
masak |
I've seen such documents, but it's been a while. |
| 15:51 |
|
ingy |
thanks! |
| 15:51 |
|
|
flussence joined #perl6 |
| 16:04 |
|
arnsholt |
jnthn: FROGGS gets what looks like a decontainerize of something that isn't a container in https://github.com/PerlGameDev[…]/Channels.pm6#L10 (in play_channel) |
| 16:04 |
|
arnsholt |
Backtrace at http://nopaste.info/2f9f16692a.html |
| 16:04 |
|
|
marmay_ joined #perl6 |
| 16:05 |
|
arnsholt |
Doesn't look like it's the literal -1 that's it. Any thoughts on what it might be? |
| 16:05 |
|
|
tokuhiro_ joined #perl6 |
| 16:06 |
|
arnsholt |
FROGGS: Oh. What happens if you remove the type decorations of the args in play_channel? |
| 16:06 |
|
FROGGS |
how should I pass the args then? |
| 16:07 |
|
FROGGS |
is there a $_ or @_? |
| 16:07 |
|
FROGGS |
or is it like (shift, shift, shift)? |
| 16:08 |
|
arnsholt |
Oh, you can leave the argument list, but try making it play_channel( $channel, $sample, $loops ) |
| 16:08 |
|
FROGGS |
ahh, misread |
| 16:08 |
|
FROGGS |
will try |
| 16:08 |
|
FROGGS |
its working |
| 16:09 |
|
FROGGS |
I need to recheck that I did no mistake |
| 16:11 |
|
arnsholt |
Excellent! |
| 16:11 |
|
|
saran joined #perl6 |
| 16:11 |
|
arnsholt |
Looks like native typed args don't end up in containers |
| 16:11 |
|
FROGGS |
ya, it fails again if I add the "int" to the first arg |
| 16:11 |
|
|
saran left #perl6 |
| 16:11 |
|
arnsholt |
Which then explodes when we try to decontainerize |
| 16:16 |
|
|
Circlepuller_ joined #perl6 |
| 16:17 |
|
|
saran joined #perl6 |
| 16:19 |
|
|
snearch joined #perl6 |
| 16:24 |
|
|
Circlepuller joined #perl6 |
| 16:31 |
|
|
saran_ joined #perl6 |
| 16:31 |
|
arnsholt |
FROGGS: I think I've figured out what the problem is. I'll prod you when it's fixed |
| 16:32 |
|
pmichaud |
back again |
| 16:34 |
|
pmichaud |
reading backscroll and email |
| 16:39 |
|
FROGGS |
arnsholt++ |
| 16:39 |
|
FROGGS |
thank you ;o) |
| 16:40 |
|
arnsholt |
Well, I didn't fix it yet =) |
| 16:40 |
|
FROGGS |
ya, but guessing the problem is the hardest part most times |
| 17:11 |
|
|
am0c joined #perl6 |
| 17:16 |
|
|
benabik joined #perl6 |
| 17:21 |
|
|
spider-mario joined #perl6 |
| 17:38 |
|
arnsholt |
jnthn: What's the best way to get access to smo_id (in sixmodelobject.c) from nqp_dyncall.ops? |
| 17:40 |
|
dalek |
doc: a5c90a5 | moritz++ | / (2 files): |
| 17:40 |
|
dalek |
doc: X::Mixin::NotComposable |
| 17:40 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/a5c90a5be7 |
| 17:43 |
|
tadzik |
0901 sorear | anyways, I had a hell of a time getting Niecza to run on |
| 17:43 |
|
tadzik |
| tadzik's machine |
| 17:43 |
|
dalek |
specs: c80acf9 | moritz++ | S32-setting-library/Exception.pod: |
| 17:43 |
|
dalek |
specs: [S32::Exception] rename an exception class, for consistency |
| 17:43 |
|
dalek |
specs: review: https://github.com/perl6/specs/commit/c80acf9413 |
| 17:44 |
|
tadzik |
...when were you... oh, I remember the case now |
| 17:44 |
|
tadzik |
good evening #perl6 |
| 17:44 |
|
moritz |
\o tadzik |
| 17:45 |
|
arnsholt |
Nm. Found it |
| 17:46 |
|
dalek |
doc: 5f9c9f4 | moritz++ | lib/X/NoDispatcher.pod: |
| 17:46 |
|
dalek |
doc: X::NoDispatcher |
| 17:46 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/5f9c9f4491 |
| 17:48 |
|
dalek |
doc: 278a4cd | moritz++ | lib/X/Declaration/Scope/Multi.pod: |
| 17:48 |
|
dalek |
doc: X::Declaration::Scope::Multi |
| 17:48 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/278a4cd561 |
| 17:52 |
|
dalek |
doc: 0edd594 | moritz++ | lib/X/Syntax/Variable/Twigil.pod: |
| 17:52 |
|
dalek |
doc: X::Syntax::Variable::Twigil |
| 17:52 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/0edd594344 |
| 17:54 |
|
dalek |
doc: 4bb78ba | moritz++ | lib/X/Syntax/Self/WithoutObject.pod: |
| 17:54 |
|
dalek |
doc: X::Syntax::Self::WithoutObject |
| 17:54 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/4bb78baed0 |
| 17:56 |
|
masak |
good morning, tadzik. |
| 17:56 |
|
masak |
rn: constant o = 42; \o |
| 17:56 |
|
p6eval |
rakudo f7ec30, niecza v19-44-g55e895a: ( no output ) |
| 17:56 |
|
masak |
rn: constant o = 42; say \o |
| 17:56 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«\(42)» |
| 17:56 |
|
p6eval |
..rakudo f7ec30: OUTPUT«42» |
| 18:04 |
|
colomon |
rn: constant o = 42; say o |
| 18:04 |
|
p6eval |
rakudo f7ec30, niecza v19-44-g55e895a: OUTPUT«42» |
| 18:07 |
|
benabik |
rn: constant o = 42; say \o/ 1 |
| 18:07 |
|
p6eval |
rakudo f7ec30: OUTPUT«1» |
| 18:07 |
|
p6eval |
..niecza v19-44-g55e895a: OUTPUT«Unhandled exception: Cannot use value like Capture as a number at <unknown> line 0 (ExitRunloop @ 0)  at /home/p6eval/niecza/lib/CORE.setting line 293 (Any.Numeric @ 6)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/veIlHDuYsG line 1 (mainline @ 4… |
| 18:07 |
|
benabik |
Amusing. |
| 18:09 |
|
moritz |
nr: say Capture ~~ Cool |
| 18:09 |
|
p6eval |
rakudo f7ec30, niecza v19-44-g55e895a: OUTPUT«False» |
| 18:10 |
|
dalek |
rakudo/nom: bd23ad4 | moritz++ | src/core/ (2 files): |
| 18:10 |
|
dalek |
rakudo/nom: rename an exception class |
| 18:10 |
|
dalek |
rakudo/nom: review: https://github.com/rakudo/raku[…]commit/bd23ad4609 |
| 18:10 |
|
dalek |
roast: d4fa5e8 | moritz++ | S32-exceptions/misc.t: |
| 18:10 |
|
dalek |
roast: follow exception class rename |
| 18:10 |
|
dalek |
roast: review: https://github.com/perl6/roast/commit/d4fa5e8773 |
| 18:24 |
|
moritz |
nr: sub f(::T) { class A is T { } } |
| 18:24 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«===[0mSORRY!===[0m��GLOBAL::T does not name any package at /tmp/EYl_nY1i4o line 1:�------> sub f(::T�) { class A is T { } }��A type must be provided at /tmp/EYl_nY1i4o line 1:�------> sub f(::T�) { class A is T… |
| 18:24 |
|
p6eval |
..rakudo f7ec30: OUTPUT«===SORRY!===Cannot type check against type variable Tat /tmp/aUJgGyqScX:1» |
| 18:30 |
|
masak |
how is '\o/' parsed above in benabik's evaluation? |
| 18:30 |
|
benabik |
masak: It seems to be parsed as \o / 1, given that neicza complained about capture to number. |
| 18:34 |
|
dalek |
tablets: 4eff6da | (Herbert Breunung)++ | docs/ (3 files): |
| 18:34 |
|
dalek |
tablets: removing noneexisting book |
| 18:34 |
|
dalek |
tablets: review: https://github.com/perl6/table[…]commit/4eff6da5e3 |
| 18:34 |
|
masak |
r: constant o = 42; say o/ |
| 18:34 |
|
p6eval |
rakudo f7ec30: OUTPUT«===SORRY!===Confusedat /tmp/Q8b9OJmTkQ:1» |
| 18:34 |
|
masak |
r: constant o = 42; say \o/ |
| 18:34 |
|
p6eval |
rakudo f7ec30: OUTPUT«===SORRY!===Confusedat /tmp/ATzNEqDZUn:1» |
| 18:34 |
|
benabik |
masak: I used \o/ 1 |
| 18:34 |
|
masak |
oh! :) |
| 18:34 |
|
benabik |
:-D |
| 18:34 |
|
masak |
mystery solved :) |
| 18:34 |
|
masak |
sneaky ;) |
| 18:36 |
|
|
xinming joined #perl6 |
| 18:47 |
|
dalek |
doc: 19f2c5a | moritz++ | lib/X/Syntax/P5.pod: |
| 18:47 |
|
dalek |
doc: X::Syntax::P5 |
| 18:47 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/19f2c5ad97 |
| 18:49 |
|
|
larks joined #perl6 |
| 18:51 |
|
|
popl joined #perl6 |
| 18:51 |
|
* masak |
.oO( Perl 6 is so different, Perl 5 is represented in it as an exception type ) :P |
| 18:52 |
|
moritz |
the Pod:: classes need documentation |
| 18:53 |
|
moritz |
any takers? |
| 18:53 |
|
moritz |
masak: oh, and the Macro class needs documentation |
| 18:53 |
|
moritz |
r: macro a { }; say &a.WHAT |
| 18:53 |
|
p6eval |
rakudo f7ec30: OUTPUT«Macro()» |
| 18:53 |
|
masak |
noted. |
| 18:53 |
|
moritz |
\o/ |
| 18:54 |
|
* moritz |
imagines the memo percolating to the different masak clones |
| 18:54 |
|
masak |
"A macro is a Routine whose invocation typically happens during parsing." |
| 18:54 |
|
masak |
or s/m/M/ perhaps. |
| 18:56 |
|
moritz |
r: say Macro.^mro |
| 18:56 |
|
p6eval |
rakudo f7ec30: OUTPUT«Macro() Routine() Block() Code() Any() Mu()» |
| 18:56 |
|
moritz |
why doesn't it inherit from Sub? |
| 18:57 |
|
masak |
why should it? |
| 18:57 |
|
masak |
why doesn't Method inherit from Sub? |
| 18:57 |
|
moritz |
because it's very sub-like |
| 18:57 |
|
masak |
so is Method. |
| 18:57 |
|
moritz |
nonono |
| 18:57 |
|
masak |
sure it is. |
| 18:57 |
|
moritz |
methods are scoped differently by default |
| 18:57 |
|
moritz |
and are usually called in a different way |
| 18:57 |
|
masak |
so are macros. |
| 18:58 |
|
moritz |
called, yes. Scoped? |
| 18:58 |
|
moritz |
I hope not :-) |
| 18:58 |
|
masak |
methods are *scoped* the same too. they are registered differently. |
| 18:58 |
|
masak |
methods adhere to lexical scoping just as much as macros and subs do. |
| 18:59 |
|
masak |
but please, tell me what would be different in practice if I made Macro a subclass of Sub. that should be the determiner of this. |
| 18:59 |
|
masak |
not some fuzzy philosophical similarity. |
| 19:00 |
|
masak |
see, src/core/Sub.pm is empty :) |
| 19:01 |
|
sorear |
good * #perl6 |
| 19:01 |
|
moritz |
you're right, it's probably not important |
| 19:01 |
|
moritz |
just different from what I expected |
| 19:01 |
|
moritz |
good morning sorear |
| 19:02 |
|
masak |
moritz: I will remember your surprise and take it in consideration in case any empirical difference manifests itself. |
| 19:02 |
|
masak |
good morning, sorear. |
| 19:03 |
|
dalek |
doc: 9795da9 | moritz++ | lib/Macro.pod: |
| 19:03 |
|
dalek |
doc: stub documentation for Macro |
| 19:03 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/9795da999e |
| 19:06 |
|
|
larks joined #perl6 |
| 19:06 |
|
masak |
moritz++ |
| 19:08 |
|
|
ObseLeTe joined #perl6 |
| 19:10 |
|
|
gongyiliao joined #perl6 |
| 19:10 |
|
masak |
gongyiliao: hi. |
| 19:10 |
|
gongyiliao |
hi |
| 19:11 |
|
masak |
rn: say "Welcome to #perl{ 1 + 2 + 3 }" |
| 19:11 |
|
p6eval |
rakudo bd23ad, niecza v19-44-g55e895a: OUTPUT«Welcome to #perl6» |
| 19:12 |
|
|
birdwindupbird joined #perl6 |
| 19:13 |
|
moritz |
rn: say "Welcome to #perl{ [+] ^4 }" |
| 19:13 |
|
p6eval |
rakudo bd23ad, niecza v19-44-g55e895a: OUTPUT«Welcome to #perl6» |
| 19:13 |
|
sorear |
haven't I seen that name before? |
| 19:15 |
|
sorear |
ah, only in the sense that gongyiliao has joined #perl6 53 times since my records begin |
| 19:16 |
|
masak |
oh :) |
| 19:18 |
|
* sorear |
was momentarily confused by "nwc10" |
| 19:18 |
|
sorear |
silly internetwork name differences |
| 19:21 |
|
FROGGS |
is there a pod2html or something that can handle several =for pod blocks? |
| 19:23 |
|
moritz |
there's Pod::To::HTML |
| 19:23 |
|
FROGGS |
ohh, cool |
| 19:24 |
|
moritz |
that's what we use to generate the HTML on doc.perl6.org |
| 19:24 |
|
sirrobert |
is there a special var that knows the name of the file currently being worked on? |
| 19:25 |
|
sirrobert |
(and: hi p6 =) |
| 19:28 |
|
sorear |
rn: say $*FILE |
| 19:28 |
|
p6eval |
rakudo bd23ad: OUTPUT«Dynamic variable name not found in method gist at src/gen/CORE.setting:9757 in sub say at src/gen/CORE.setting:7125 in block at /tmp/28zi11Lu1v:1» |
| 19:28 |
|
p6eval |
..niecza v19-44-g55e895a: OUTPUT«Any()» |
| 19:28 |
|
sorear |
rn: say $?FILE |
| 19:28 |
|
p6eval |
rakudo bd23ad: OUTPUT«/tmp/vPw47tI1pw» |
| 19:28 |
|
p6eval |
..niecza v19-44-g55e895a: OUTPUT«/tmp/t0BITImhAC» |
| 19:28 |
|
sirrobert |
huh |
| 19:28 |
|
sirrobert |
I haven't seen $? before |
| 19:28 |
|
sorear |
rn: say callframe(0).file |
| 19:28 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«/tmp/snl5S79OLb» |
| 19:28 |
|
p6eval |
..rakudo bd23ad: OUTPUT«/tmp/0Se6AQrLK4» |
| 19:29 |
|
sirrobert |
if $* means global, what does $? mean? |
| 19:29 |
|
sorear |
$? is for constants |
| 19:29 |
|
sorear |
lexically scoped compile time values |
| 19:29 |
|
sirrobert |
ahh... cool |
| 19:29 |
|
sorear |
in a way it's closely related to $* |
| 19:29 |
|
felher |
sirrobert: you may want to take a look at: http://perlcabal.org/syn/S02.html#Twigils |
| 19:29 |
|
FROGGS |
so you are talking about __FILE__? |
| 19:29 |
|
moritz |
nr: say $?FILE |
| 19:29 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«/tmp/FWp6A5Lqde» |
| 19:29 |
|
p6eval |
..rakudo bd23ad: OUTPUT«/tmp/vC7WDrAdxp» |
| 19:29 |
|
sorear |
because with recursive descent parsing, lexical scopes in the program correspond to dynamic scopes in the compiler |
| 19:30 |
|
sorear |
$? support is spotty |
| 19:30 |
|
sirrobert |
sorear|felher: thanks--reading |
| 19:30 |
|
sirrobert |
sorear: hm ok |
| 19:30 |
|
sorear |
niecza has &?BLOCK, &?ROUTINE, $?FILE, $?LINE, $?POSITION, $?ORIG, and I think that's it |
| 19:30 |
|
moritz |
http://doc.perl6.org/language/variables#Twigils # needs much more work |
| 19:31 |
|
sorear |
rakudo I think has about the same number, it adds $?CLASS and friends but lacks $?LINE? |
| 19:31 |
|
sorear |
nr: say $?LINE |
| 19:31 |
|
p6eval |
rakudo bd23ad, niecza v19-44-g55e895a: OUTPUT«1» |
| 19:31 |
|
sorear |
nr: 11say $?LINE |
| 19:31 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«===[0mSORRY!===[0m��Two terms in a row (previous line missing its semicolon?) at /tmp/Ug7FX83imF line 2:�------> <BOL>�1��Parse failed��» |
| 19:31 |
|
p6eval |
..rakudo bd23ad: OUTPUT«===SORRY!===Confusedat /tmp/HoGtJg5BT4:1» |
| 19:31 |
|
sorear |
nr: 1;1;say $?LINE |
| 19:31 |
|
p6eval |
rakudo bd23ad, niecza v19-44-g55e895a: OUTPUT«3» |
| 19:31 |
|
sorear |
mmh |
| 19:31 |
|
sorear |
nr: say &?BLOCK |
| 19:31 |
|
p6eval |
rakudo bd23ad: OUTPUT«Nil» |
| 19:31 |
|
p6eval |
..niecza v19-44-g55e895a: OUTPUT«routine mainline() { ... }» |
| 19:31 |
|
sorear |
nr: say &?MOO |
| 19:31 |
|
p6eval |
rakudo bd23ad: OUTPUT«Nil» |
| 19:31 |
|
p6eval |
..niecza v19-44-g55e895a: OUTPUT«Any()» |
| 19:32 |
|
sorear |
ok, there's one niecza has |
| 19:33 |
|
MikeFair_ |
howdy #perl6 |
| 19:33 |
|
moritz |
nr: say Nil ~~ Cool |
| 19:33 |
|
p6eval |
rakudo bd23ad, niecza v19-44-g55e895a: OUTPUT«True» |
| 19:33 |
|
sirrobert |
hi |
| 19:33 |
|
MikeFair_ |
gmorning |
| 19:33 |
|
masak |
MikeFair_: morning! |
| 19:34 |
|
felher |
moritz: maybe i can do a bit of work on twigils in p6doc on wednesday. Today/Mon/Tue are filled up with work ($job). |
| 19:34 |
|
felher |
o/ MikeFair_ |
| 19:35 |
|
moritz |
felher: that would be great |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: c7e1713 | moritz++ | src/ (3 files): |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: Iterable should not inherit from Cool |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: while that might be cool for core classes, it is not in the general case |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: review: https://github.com/rakudo/raku[…]commit/c7e1713eb1 |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: c6fac5b | moritz++ | src/core/Nil.pm: |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: Nil is Cool |
| 19:35 |
|
dalek |
rakudo/uncool-iterable: review: https://github.com/rakudo/raku[…]commit/c6fac5b63f |
| 19:37 |
|
sirrobert |
r: dir |
| 19:37 |
|
p6eval |
rakudo bd23ad: ( no output ) |
| 19:37 |
|
sirrobert |
r: dir.WHAT |
| 19:37 |
|
p6eval |
rakudo bd23ad: ( no output ) |
| 19:37 |
|
felher |
r: dir.perl.say |
| 19:37 |
|
p6eval |
rakudo bd23ad: OUTPUT«Array.new(IO::Path.new(basename => "star", directory => "."), IO::Path.new(basename => "src", directory => "."), IO::Path.new(basename => ".bashrc", directory => "."), IO::Path.new(basename => "nom-inst1", directory => "."), IO::Path.new(basename => "toqast", direc… |
| 19:37 |
|
sirrobert |
r: for dir -> $f { say $f} |
| 19:37 |
|
p6eval |
rakudo bd23ad: OUTPUT«===SORRY!===Missing blockat /tmp/Evirw6da_2:1» |
| 19:37 |
|
sirrobert |
why is that a missing block? |
| 19:38 |
|
moritz |
r: for dir() -> $f { say $f } |
| 19:38 |
|
p6eval |
rakudo bd23ad: OUTPUT«IO::Path<star>IO::Path<src>IO::Path<.bashrc>IO::Path<nom-inst1>IO::Path<toqast>IO::Path<test3.pl>IO::Path<.profile>IO::Path<t>IO::Path<nom-inst2>IO::Path<nom-inst>IO::Path<toqast-inst>IO::Path<toqast-inst2>IO::Path<examples>IO::Path<Makefile>IO::Path<… |
| 19:38 |
|
sirrobert |
hm |
| 19:38 |
|
moritz |
sirrobert: because the block is taken as an argument to the dir function |
| 19:38 |
|
sirrobert |
ohh |
| 19:38 |
|
moritz |
n: for dir -> $f { say $f } |
| 19:38 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«===[0mSORRY!===[0m��Missing block at /tmp/GET_0Y3r4G line 1 (EOF):�------> for dir -> $f { say $f }�<EOL>��Parse failed��» |
| 19:38 |
|
moritz |
std: for dir -> $f { say $f } |
| 19:38 |
|
p6eval |
std d93fffe: OUTPUT«===[0mSORRY!===[0m�Function 'dir' needs parens to avoid gobbling block at /tmp/eX_uOAhYR_ line 1:�------> for dir� -> $f { say $f }�Missing block (apparently gobbled by 'dir') at /tmp/eX_uOAhYR_ line 1:�------> for dir -> $f { say … |
| 19:38 |
|
moritz |
std has a better message |
| 19:38 |
|
sirrobert |
yeah |
| 19:39 |
|
sirrobert |
hey... you know what would be cool |
| 19:39 |
|
sirrobert |
a separate project housed only error messages. When an error got thrown out, it has something like a code |
| 19:39 |
|
sirrobert |
a separate github repo houses messages to make them helpful? |
| 19:39 |
|
sirrobert |
then is fed in during compile? |
| 19:40 |
|
sirrobert |
I would happily contribute better error messages when I came across weird stuff, but don't have time to dig into the guts |
| 19:40 |
|
moritz |
sirrobert: the problem is not the message itself |
| 19:40 |
|
moritz |
sirrobert: the hard part is detecting the error condition in the first place |
| 19:40 |
|
sirrobert |
well, in this case |
| 19:41 |
|
sirrobert |
but having a lexicon of errors could be helpful in general =) |
| 19:41 |
|
moritz |
https://github.com/rakudo/raku[…]core/Exception.pm isn't too bad to hack on |
| 19:41 |
|
moritz |
sirrobert: well, doc.perl6.org has a nearly complete list |
| 19:41 |
|
sirrobert |
moritz: fair enough =) |
| 19:42 |
|
|
tokuhiro_ joined #perl6 |
| 19:43 |
|
* jnthn |
back from nom |
| 19:44 |
|
moritz |
wb jnthn |
| 19:45 |
|
moritz |
std: rxs// |
| 19:45 |
|
p6eval |
std d93fffe: OUTPUT«===[0mSORRY!===[0m�Bogus term at /tmp/5MniyHlIb6 line 1 (EOF):�------> rxs//�<EOL>�Undeclared routine:� 'rxs' used at line 1�Parse failed�FAILED 00:00 42m�» |
| 19:45 |
|
jnthn |
Method and Sub inherit from Routine. |
| 19:45 |
|
jnthn |
That's what factors out their commonalities. |
| 19:45 |
|
jnthn |
It's fine. :) |
| 19:45 |
|
moritz |
jnthn: yes, that much isn't debated at all |
| 19:46 |
|
dalek |
doc: 3afc269 | moritz++ | lib/X/Syntax/Regex/Adverb.pod: |
| 19:46 |
|
dalek |
doc: X::Syntax::Regex::Adverb |
| 19:46 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/3afc269c1c |
| 19:46 |
|
moritz |
jnthn: the question was really whether Macro should inherit from Sub, or directly from Routine |
| 19:46 |
|
jnthn |
Routine. :) |
| 19:46 |
|
jnthn |
imho ;) |
| 19:46 |
|
|
kst joined #perl6 |
| 19:46 |
|
jnthn |
I'd not really want a macro to ~~ Sub |
| 19:46 |
|
jnthn |
That feels excessively surprising. |
| 19:49 |
|
dalek |
doc: d1d8a9d | moritz++ | lib/X/Syntax/Reserved.pod: |
| 19:49 |
|
dalek |
doc: X::Syntax::Reserved |
| 19:49 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/d1d8a9d00a |
| 19:51 |
|
dalek |
nqp: a886a77 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops: |
| 19:51 |
|
dalek |
nqp: Properly handle non-Sixmodel objects in dyncall ops. |
| 19:51 |
|
dalek |
nqp: |
| 19:51 |
|
dalek |
nqp: Two issues: |
| 19:51 |
|
dalek |
nqp: - decontainerize in nqp_dyncall.ops was out of sync with decontainerize in |
| 19:51 |
|
dalek |
nqp: sixmodelobject.c (didn't consider possibility of non-SMO arguments) |
| 19:51 |
|
dalek |
nqp: - unmarshalling code (to int/float types) need to dispatch to VTABLE_get_* in |
| 19:51 |
|
dalek |
nqp: case of non-SMO arguments. |
| 19:51 |
|
dalek |
nqp: |
| 19:51 |
|
dalek |
nqp: FROGGS++ for uncovering the problem. |
| 19:51 |
|
dalek |
nqp: review: https://github.com/perl6/nqp/commit/a886a77147 |
| 19:52 |
|
jnthn |
nemesys: Hmm...I'm curious why the second bit was needed. |
| 19:52 |
|
jnthn |
grr |
| 19:52 |
|
jnthn |
arnsholt: ^^ |
| 19:53 |
|
arnsholt |
The VTABLE stuff? |
| 19:53 |
|
arnsholt |
If it isn't SMO, REPR(value)->box_funcs->get_foo(...) kinda isn't there, no? |
| 19:54 |
|
dalek |
doc: 87275f7 | moritz++ | lib/X/Constructor/Positional.pod: |
| 19:54 |
|
dalek |
doc: X::Constructor::Positional |
| 19:54 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/87275f7d7b |
| 19:54 |
|
jnthn |
arnsholt: Right. I meant...where on earth is the non-6model object coming from? |
| 19:55 |
|
arnsholt |
Native types it seems |
| 19:56 |
|
moritz |
erm, what? |
| 19:56 |
|
moritz |
you mean, sub f(int) is native(...) ? |
| 19:58 |
|
dalek |
zavolaj: d47cd3f | (Arne Skjærholt)++ | t/02-simple-args. (2 files): |
| 19:58 |
|
dalek |
zavolaj: Add test for wrapper sub with native parameter types. |
| 19:58 |
|
dalek |
zavolaj: |
| 19:58 |
|
dalek |
zavolaj: Closes issue #12 in conjunction with NQP commit a886a77 |
| 19:58 |
|
dalek |
zavolaj: review: https://github.com/jnthn/zavol[…]commit/d47cd3f855 |
| 19:58 |
|
dalek |
zavolaj: 3d6ee45 | (Arne Skjærholt)++ | lib/NativeCall.pm6: |
| 19:58 |
|
dalek |
zavolaj: Merge branch 'master' of github.com:jnthn/zavolaj |
| 19:58 |
|
sorear |
JNTHN! |
| 19:58 |
|
dalek |
zavolaj: review: https://github.com/jnthn/zavol[…]commit/3d6ee457af |
| 19:58 |
|
jnthn |
SOREAR! |
| 19:58 |
|
moritz |
if those box into parrot PMCs, then they need more care on the callee side, I guess |
| 19:58 |
|
arnsholt |
jnthn, moritz: See the new test in zavolaj d47cd3f up there |
| 20:00 |
|
dalek |
doc: b84221e | moritz++ | lib/X/Syntax/Obsolete.pod: |
| 20:00 |
|
dalek |
doc: X::Syntax::Obsolete |
| 20:00 |
|
dalek |
doc: review: https://github.com/perl6/doc/commit/b84221e64e |
| 20:00 |
|
arnsholt |
A wrapper around a native function, where the wrapper has native types on its args and passes them through to the function apparently passes the natives through |
| 20:01 |
|
sirrobert |
this is cool, but syntactically, why does it work? |
| 20:01 |
|
sirrobert |
r: my $a = {a => 1}; my $b = {b => 2}; my %h = $a, $b; say %h; |
| 20:01 |
|
p6eval |
rakudo bd23ad: OUTPUT«("a" => 1, "b" => 2).hash» |
| 20:01 |
|
sorear |
jnthn: I hear you're in Norway now. Anyways, I'd like you to read http://irclog.perlgeek.de/perl[…]2-08-26#i_5931019 |
| 20:01 |
|
sirrobert |
why is ($h1,$h2) a hash? |
| 20:01 |
|
sirrobert |
s/$/%/ |
| 20:02 |
|
sorear |
jnthn: 8:46 to 9:11 |
| 20:02 |
|
moritz |
sirrobert: it seems that hash assignment flattens out hashes regardless of the sigil |
| 20:02 |
|
sorear |
sirrobert: it's not, it's a parcel |
| 20:02 |
|
moritz |
sirrobert: which looks like a bug to me |
| 20:02 |
|
sirrobert |
hm |
| 20:02 |
|
|
sftp joined #perl6 |
| 20:02 |
|
moritz |
n: my $a = {a => 1}; my $b = {b => 2}; my %h = $a, $b; say %h.perl |
| 20:02 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«Unhandled exception: Unmatched key in Hash.LISTSTORE at /tmp/jAmTUPUiEk line 1 (mainline @ 16)  at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4139 (module-CORE @ 571)  at /home/p6eval/nie… |
| 20:02 |
|
sirrobert |
r: say ({a => 1}, {b=>2}).WHAT |
| 20:02 |
|
p6eval |
rakudo bd23ad: OUTPUT«Parcel()» |
| 20:03 |
|
sirrobert |
r: %h = ({a => 1}, {b=>2}); say %h.WHAT; say %h; |
| 20:03 |
|
p6eval |
rakudo bd23ad: OUTPUT«===SORRY!===Variable %h is not declaredat /tmp/1r2mmum6ga:1» |
| 20:03 |
|
sirrobert |
r: my %h = ({a => 1}, {b=>2}); say %h.WHAT; say %h; |
| 20:03 |
|
p6eval |
rakudo bd23ad: OUTPUT«Hash()("a" => 1, "b" => 2).hash» |
| 20:03 |
|
moritz |
sorear: is that error the same as "odd numer of elements in hash assignment"? |
| 20:03 |
|
arnsholt |
moritz: I dunno. If Rakudo possibly passes around bare Parrot PMCs I think the dyncall stuff is the right place to handle the possibility |
| 20:03 |
|
sorear |
moritz: yes |
| 20:04 |
|
sorear |
moritz: except you can get it with even numbers too |
| 20:04 |
|
sorear |
n: my %h = (a => 2), 'b'; |
| 20:04 |
|
p6eval |
niecza v19-44-g55e895a: OUTPUT«Potential difficulties:� %h is declared but not used at /tmp/tZi5QKRtaz line 1:�------> my �%h = (a => 2), 'b';��Unhandled exception: Unmatched key in Hash.LISTSTORE� at /tmp/tZi5QKRtaz line 1 (mainline @ 2) � at /home/p6eval/niecza/l… |
| 20:04 |
|
sirrobert |
huh... |
| 20:04 |
|
moritz |
sorear: so it specifically handles hashes iin hash assignment? |
| 20:04 |
|
sirrobert |
r: my %h = {a=>1, b => 3}; %h ,= {c=>3}; say %h; |
| 20:04 |
|
p6eval |
rakudo bd23ad: OUTPUT«("a" => 1, "b" => 3, "c" => 3).hash» |
| 20:04 |
|
sirrobert |
that's pretty cool. |
| 20:05 |
|
sorear |
moritz: yes |
| 20:05 |
|
moritz |
sorear: is that specced? (I'm not saying it's wrong, I'm just curious :-) |
| 20:05 |
|
sorear |
I know I've seen real-world code that does 'my %h = $h' |
| 20:06 |
|
sorear |
niecza might be wrong in allowing Hashes to be freely admixed into lists of pairs, keys, and values |
| 20:06 |
|
* sorear |
looks for relevant spec |
| 20:07 |
|
sorear |
The relevant spec is S02:4711, which does NOT allow passing Hash objects to Hash.LISTSTORE |
| 20:09 |
|
|
cognominal joined #perl6 |
| 20:09 |
|
|
cognominal joined #perl6 |
| 20:11 |
|
moritz |
let's wait for a word from TimToady though. It might be an omission, since in p5 a hash would simply flatten out |
| 20:14 |
|
* felher |
should teach his address bar to recognize things like S02:4711 |
| 20:19 |
|
sirrobert |
I love it when you get to that magic moment when your subs and modules and such turn into a perfect DSL. |
| 20:21 |
|
masak |
sirrobert: that's why I tend to start most designs by pretending I have the perfect DSL already :) kinda top-down. |
| 20:21 |
|
sirrobert |
masak: me too... super smooth =) |
| 20:21 |
|
sirrobert |
it tends to be multi-pass for me |
| 20:22 |
|
sirrobert |
usually 3 or 4 |
| 20:22 |
|
sorear |
sirrobert: The Forth community has a wonderful additude to this. Every sub you define is defining an incremental new language |
| 20:22 |
|
sirrobert |
huh |
| 20:22 |
|
sirrobert |
never heard of "The Forth" |
| 20:22 |
|
sorear |
The (Forth community) |
| 20:23 |
|
sirrobert |
ohhh |
| 20:23 |
|
sirrobert |
heh |
| 20:23 |
|
jnthn |
sorear: Yeah, there are some issues in Rakudo around that area. |
| 20:23 |
|
sorear |
Forth is a languagey thing from many years ago |
| 20:23 |
|
sirrobert |
I think I've heard of but, but know nothing about it |
| 20:24 |
|
|
bruges joined #perl6 |
| 20:26 |
|
sorear |
Forth's niche is a local optimum very low on the expressiveness/implementation complexity curve |
| 20:27 |
|
sorear |
you can use it for fair-sized apps, it has a REPL, and it can be implemented in about 1-4k of machine code |
| 20:27 |
|
dalek |
Heuristic branch merge: pushed 30 commits to nqp/toqast by jnthn |
| 20:27 |
|
benabik |
Forth is used in RedPower. |
| 20:27 |
|
benabik |
(Mod that adds a 6502 processor to minecraft) |
| 20:27 |
|
sorear |
these days it gets most use in embedded systems, for the last reason |
| 20:28 |
|
masak |
they totally should've called the language "The Forth", though. :D |
| 20:28 |
|
colomon |
Forth++ |
| 20:28 |
|
colomon |
\ |
| 20:28 |
|
sorear |
it may be a language, but it's the kind of language that has builtins for accessing a block storage device |
| 20:28 |
|
benabik |
May the Forth be with you? |
| 20:29 |
|
sorear |
42 LOAD |
| 20:33 |
|
masak |
when I last studied the Forth culture, I got the same kind of vibes from it of "we hold the ultimate truth to how computing should be done" that I sometimes get from Lisp or Smalltalk people. |
| 20:33 |
|
masak |
not putting any value judgement in that. that's how it felt. |
| 20:34 |
|
sorear |
to put it bluntly, when a language loses its core niche, most of the people who remains are True Beleivers. |
| 20:34 |
|
pmichaud |
good evening, #perl6 |
| 20:35 |
|
sorear |
good evening pmichaud |
| 20:36 |
|
colomon |
masak: actually, I think there are really interesting parallels between Forth and Lisp. |
| 20:37 |
|
sirrobert |
masak: Forth is Force with a lisp? |
| 20:38 |
|
sorear |
Forth is a fourth-generation language on a limited OS that had 5-character command names |
| 20:38 |
|
sorear |
same reason we have SCHEME instead of the originally intended SCHEMER. |
| 20:38 |
|
sorear |
.oO( if Scheme were created today, it would obviously have been named Schemr) |
| 20:40 |
|
masak |
:P |
| 20:40 |
|
masak |
and it would've had rounded corners and would only hire rock stars and ninjas. |
| 20:44 |
|
benabik |
roundrects everywhere |
| 20:50 |
|
|
REPLeffect joined #perl6 |
| 20:54 |
|
jnthn |
Do we *need* multi-jointed lexical packages? |
| 20:54 |
|
jnthn |
What happens if we kill them? |
| 20:59 |
|
ChoHag |
If you were working on a project for fun, and you weren't really sure what it was, what would you call it? |
| 20:59 |
|
pmichaud |
ChoHag: pick a fun name |
| 20:59 |
|
ChoHag |
I ask here because it will feature perl 6 for a significant part of it. |
| 21:00 |
|
ChoHag |
But what's fun about a name? |
| 21:01 |
|
sirrobert |
ChoHag: pick a commonplace thing in the same conceptual broad swath as the project. |
| 21:01 |
|
ChoHag |
Hmm. |
| 21:01 |
|
ChoHag |
It's a swathe of quite significant proportions. |
| 21:01 |
|
sirrobert |
ChoHag: e.g. if you're working on something to do brownian motion, dfo " |
| 21:01 |
|
sirrobert |
do "riverbed" |
| 21:01 |
|
sirrobert |
or something |
| 21:02 |
|
ChoHag |
hmm |
| 21:02 |
|
sirrobert |
what's the project (in like... 10 words or less)? |
| 21:03 |
|
ChoHag |
Code that writes itself. |
| 21:03 |
|
ChoHag |
Not in the quine sense. |
| 21:03 |
|
ChoHag |
9. |
| 21:04 |
|
sirrobert |
back |
| 21:04 |
|
sirrobert |
how about something like "meta" |
| 21:05 |
|
sirrobert |
oh, here you go |
| 21:05 |
|
ChoHag |
I dunno. |
| 21:05 |
|
ChoHag |
Isn't that a bit ... meta? |
| 21:05 |
|
sirrobert |
Ouroboris |
| 21:05 |
|
FROGGS |
or "cloud", everything is a cloud nowadays |
| 21:05 |
|
masak |
jnthn: I wouldn't mind, I think. |
| 21:05 |
|
ChoHag |
This has emphatically nothing to do with clouds. |
| 21:06 |
|
sirrobert |
Ouroboros, I guess |
| 21:06 |
|
sirrobert |
(s/i/o) |
| 21:06 |
|
ChoHag |
That might be a good choice. |
| 21:06 |
|
ChoHag |
Maybe Youroboros. |
| 21:06 |
|
sirrobert |
or if you want something with more popular recognition, |
| 21:06 |
|
sirrobert |
Escher |
| 21:06 |
|
ChoHag |
Because it's not really mine. |
| 21:06 |
|
sirrobert |
anyway, you get the idea |
| 21:07 |
|
ChoHag |
Yeah that'll do. |
| 21:07 |
|
ChoHag |
I'm not a big one for names. |
| 21:07 |
|
sirrobert |
it's a different skill, for sure. |
| 21:07 |
|
ChoHag |
My little girl's only 14 months and I've called her the cat's name on numerous occasions. |
| 21:07 |
|
sirrobert |
heh |
| 21:08 |
|
FROGGS |
I always swap the names of my two sons :/ |
| 21:08 |
|
sirrobert |
When my son was 5 last year, he said to his mom: Hey ... <short pause> ... you, with the glasses. |
| 21:08 |
|
FROGGS |
hehe |
| 21:08 |
|
ChoHag |
That wouldn't work in our house. |
| 21:08 |
|
sirrobert |
it didn't work in ours either |
| 21:08 |
|
sirrobert |
(we both wear them) |
| 21:09 |
|
ChoHag |
My dad and brother have the same name too, and sound the same on the phone. |
| 21:09 |
|
ChoHag |
That was always fun. |
| 21:09 |
|
FROGGS |
your dad, your brother and you have the same name? |
| 21:10 |
|
FROGGS |
thats basically not the idea of names |
| 21:10 |
|
ChoHag |
My dad and brother have the same name in addition to most of my (previous) household wearing glasses. |
| 21:10 |
|
ChoHag |
Sorry I thought this was #perl. |
| 21:10 |
|
ChoHag |
Weird language being the order of the day, month and indeed year. |
| 21:11 |
|
FROGGS |
gnight |
| 21:12 |
|
ChoHag |
What's @INC changed to and how do I make it include . (or lib)? |
| 21:12 |
|
ChoHag |
(In rakudo) |
| 21:12 |
|
sirrobert |
use lib? |
| 21:13 |
|
ChoHag |
Are you asking me? |
| 21:13 |
|
ChoHag |
I'm asking you. |
| 21:13 |
|
sirrobert |
I'm asking you if that didn't work |
| 21:13 |
|
FROGGS |
use lib 'lib'; |
| 21:13 |
|
FROGGS |
I use it |
| 21:14 |
|
ChoHag |
Apparently it does. |
| 21:15 |
|
ChoHag |
Too often questions have the answer 'the same as perl 5'. |
| 21:18 |
|
felher |
Yeah, and if you want it for a quick test/check/whatever, you may use: |
| 21:18 |
|
felher |
export PERL6LIB=yourPathHere |
| 21:18 |
|
felher |
And then start your program :) |
| 21:21 |
|
|
fgomez joined #perl6 |
| 21:22 |
|
sorear |
ChoHag: pass -I. to the compiler |
| 21:22 |
|
sorear |
"use lib" is deeply problematic |
| 21:22 |
|
sorear |
jnthn: What do you mean by multi-joined lexical packages? |
| 21:22 |
|
ChoHag |
deeply? |
| 21:24 |
|
|
grondilu joined #perl6 |
| 21:25 |
|
sorear |
yes, deeply. |
| 21:26 |
|
sorear |
it's kind of like very. |
| 21:26 |
|
grondilu |
There has been no news for a while on rakudo.org. What's up? |
| 21:27 |
|
sorear |
I just went to Rakudo.org and it has a post from last month concerning the release |
| 21:27 |
|
sirrobert |
where do I find the Test module? |
| 21:27 |
|
sorear |
All Perl 6 compilers come with a Test module preinstalled |
| 21:27 |
|
jnthn |
sorear: my class Foo::Bar { } |
| 21:28 |
|
sirrobert |
sorear: yeah, but where do I find it in the/a github repo? |
| 21:28 |
|
sirrobert |
sorear: I want to look at the code |
| 21:28 |
|
sorear |
sirrobert: each compiler has a different (but mostly compatible) Test module |
| 21:29 |
|
pmichaud |
sirrobert: https://github.com/rakudo/raku[…]b/nom/lib/Test.pm |
| 21:29 |
|
sirrobert |
pmichaud: ahh, thanks |
| 21:30 |
|
sorear |
sirrobert: https://github.com/sorear/niec[…]ster/lib/Test.pm6 |
| 21:30 |
|
pmichaud |
time for sleep here -- be back tomorrow for some real hacking :) |
| 21:30 |
|
sirrobert |
wave |
| 21:30 |
|
sirrobert |
sorear: thanks |
| 21:31 |
|
sorear |
sirrobert: https://github.com/perl6/Pugs.[…]/Test/lib/Test.pm |
| 21:32 |
|
sorear |
https://github.com/fglock/Perl[…]/Perlito6/Test.pm |
| 21:32 |
|
sorear |
https://github.com/fglock/Perl[…]/Perlito5/Test.pm |
| 21:33 |
|
sorear |
are there any productiony implementations I'm missing here? |
| 21:37 |
|
sirrobert |
dunno, but pmichaud had a dwimmier parser =) |
| 21:38 |
|
ChoHag |
Is there any automagic done on the import list of a module? |
| 21:38 |
|
ChoHag |
I can see _that_ you write an import sub, but can't find examples of any that take arguments. |
| 21:39 |
|
ChoHag |
And just parsing @_ myself seems so perl 5 .. ago. |
| 21:40 |
|
sirrobert |
ChoHag: sorry, dunno =) |
| 21:42 |
|
|
Circlepuller joined #perl6 |
| 21:42 |
|
jnthn |
ChoHag: If you mean what I think you do, see lib.pm6 in Rakudo |
| 21:43 |
|
sirrobert |
ok, clean tests |
| 21:43 |
|
ChoHag |
I don't think that was. |
| 21:43 |
|
sirrobert |
heading home; later all |
| 21:43 |
|
sorear |
wait, it that defining GLOBAL::<&EXPORT> ? |
| 21:43 |
|
ChoHag |
I want to know what to do about the foo bar in 'use Module <foo bar>;' |
| 21:44 |
|
sorear |
our sub EXPORT(*@a) |
| 21:44 |
|
sorear |
ChoHag: sub foo is export () { } |
| 21:44 |
|
sorear |
ChoHag: that's how you make it work. |
| 21:44 |
|
ChoHag |
So that would call foo and bar as subs when Module is loaded? |
| 21:44 |
|
dalek |
nqp/toqast: 9b48c83 | jonathan++ | src/QAST/Operations.nqp: |
| 21:44 |
|
dalek |
nqp/toqast: Don't re-use the result register of the protected region in handle op for being the overall result. |
| 21:44 |
|
dalek |
nqp/toqast: review: https://github.com/perl6/nqp/commit/9b48c831ed |
| 21:44 |
|
dalek |
nqp/toqast: 442c735 | jonathan++ | src/NQPQ/ (2 files): |
| 21:44 |
|
dalek |
nqp/toqast: Update try, CATCH and CONTROL for QAST. |
| 21:44 |
|
dalek |
nqp/toqast: review: https://github.com/perl6/nqp/commit/442c73573f |
| 21:44 |
|
dalek |
nqp/toqast: c2b37e4 | jonathan++ | t/nqp/44-try-catch.t: |
| 21:44 |
|
dalek |
nqp/toqast: Eliminate a bogus test, plus some other updating to the exception tests. |
| 21:44 |
|
dalek |
nqp/toqast: review: https://github.com/perl6/nqp/commit/c2b37e456e |
| 21:44 |
|
dalek |
nqp/toqast: 62dddd0 | jonathan++ | src/QAST/ (2 files): |
| 21:44 |
|
dalek |
nqp/toqast: Fix register allocation bug involving handlers and resumable exceptions. |
| 21:44 |
|
dalek |
nqp/toqast: review: https://github.com/perl6/nqp/commit/62dddd09fa |
| 21:46 |
|
|
ObseLeTe joined #perl6 |
| 21:46 |
|
sorear |
ChoHag: no, it would copy them to the caller's namespace when Module is loaded |
| 21:47 |
|
sorear |
A.pm: 'module A; sub x is export { }' B.pm: 'use A;' |
| 21:47 |
|
sorear |
erm |
| 21:47 |
|
sorear |
A.pm: 'module A; sub x is export { }' B.pm: 'use A "x";' |
| 21:47 |
|
ChoHag |
So does nothing replace the Module->import(LIST) from perl 5? |
| 21:47 |
|
sorear |
Did you read lib.pm6 like jnthn said? |
| 21:47 |
|
ChoHag |
It was 4 lines. |
| 21:48 |
|
ChoHag |
One of them was } |
| 21:48 |
|
ChoHag |
Didn't take long. |
| 21:48 |
|
sorear |
Can you understand line 2? |
| 21:49 |
|
ChoHag |
Unless the semantics of our are radically different, yes. |
| 21:49 |
|
sorear |
line 2 is the answer to your question |
| 21:49 |
|
ChoHag |
Right. |
| 21:49 |
|
sorear |
line 2 replaces the Module->import(LIST) from perl 5 |
| 21:50 |
|
sorear |
if you have the answer, why are you asking? *confused* |
| 21:50 |
|
ChoHag |
Because I only had the answer just now when you showed me. |
| 22:01 |
|
|
worr joined #perl6 |
| 22:10 |
|
sorear |
jnthn: I am going to make fairly significant changes to the way niecza handles 'my class Foo::Bar' and 'use Foo::Bar'. I think that these changes are necessary for proper handling of the multiload provisions of S11. I do not expect much short-term support. |
| 22:12 |
|
|
Circlepuller_ joined #perl6 |
| 22:12 |
|
|
preflex_ joined #perl6 |
| 22:18 |
|
dalek |
nqp/toqast: 8d4da1b | jonathan++ | src/NQPQ/Actions.pm: |
| 22:18 |
|
dalek |
nqp/toqast: Fix closure interpolation. |
| 22:18 |
|
dalek |
nqp/toqast: review: https://github.com/perl6/nqp/commit/8d4da1ba6a |
| 22:20 |
|
jnthn |
sorear: multiload as in, multiple versions? |
| 22:26 |
|
sorear |
jnthn: yes |
| 22:27 |
|
jnthn |
sorear: Happy hacking. If you can write up a description of what you do, I'd be interested to see it. |
| 22:35 |
|
jnthn |
sleep & |
| 22:56 |
|
masak |
'night, #perl6 |
| 23:18 |
|
|
tokuhiro_ joined #perl6 |
| 23:29 |
|
|
adu joined #perl6 |
| 23:29 |
|
|
gongyiliao joined #perl6 |
| 23:40 |
|
|
colomon_ joined #perl6 |