»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:00
jstuder joined
00:01
ryn1x joined
00:05
ryn1x left
00:10
troys_ is now known as troys
00:11
mcmillhj_ left
00:12
margeas left
00:13
cdg joined
00:14
troys left
00:17
cdg left
00:19
mcmillhj joined
00:24
mcmillhj left
00:25
lizmat left
00:32
ryn1x joined
00:35
mcmillhj joined
00:37
ryn1x left
00:39
mcmillhj left
00:47
mcmillhj joined
00:51
mcmillhj left
01:00
mcmillhj joined,
lizmat joined
|
|||
comborico1611 | Pong | 01:02 | |
01:02
lizmat left
|
|||
lookatme | Ping | 01:03 | |
01:03
MasterDuke_ joined
|
|||
comborico1611 | Hi | 01:03 | |
01:05
mcmillhj left,
MasterDuke left
01:14
mcmillhj joined
01:21
eliasr left
|
|||
comborico1611 | Anyone else studying? | 01:21 | |
01:21
mcmillhj left
01:22
gabiruh left,
leedo__ left,
avar left,
literal left
01:24
notbenh left,
jstuder left
01:27
notbenh joined
01:28
gabiruh joined,
R0b0t1_ joined,
Gothmog_ joined,
gfldex joined,
leedo__ joined,
avar joined,
literal joined,
obra joined,
samebchase joined,
moritz joined,
incredible_ joined,
teatime joined,
Celelibi joined,
tinita joined,
cxreg joined,
hcit joined
01:29
mcmillhj joined
01:31
yoleaux joined,
ChanServ sets mode: +v yoleaux
01:34
mcmillhj left
01:36
kalkin--- joined
01:40
kalkin-- left
|
|||
comborico1611 | Yup. | 01:40 | |
lookatme | Studying what ? | 01:41 | |
01:41
ryn1x joined
|
|||
comborico1611 | C | 01:43 | |
Trying to study to get a job where i can work from home. | 01:44 | ||
lookatme | Oh, are you a student ? | ||
comborico1611 | Studying to try to get a job* | ||
01:45
mson left
|
|||
comborico1611 | Nope. I'm 31 years old. | 01:45 | |
lookatme | oh | ||
01:46
ryn1x left
|
|||
lookatme | So you want find a C dev job ? | 01:46 | |
comborico1611 | I'm not sure what field. Code maintenance or networking sound good. | 01:47 | |
01:47
mcmillhj joined
|
|||
lookatme | oh, what language are you good at ? | 01:49 | |
comborico1611 | I know c++ best. | 01:50 | |
lookatme | Oh, I'm c/c++ develop too | ||
comborico1611 | But I'm not talented in pr | 01:51 | |
lookatme | s/develop/developer/ | ||
comborico1611 | Development. I think I'd be better suited not in development. | ||
lookatme | How about software tester ? | 01:52 | |
01:52
mcmillhj left
|
|||
comborico1611 | s/develop/developer/? | 01:52 | |
I'm haven't been exposed to that. I'm definitely meticulous. | 01:53 | ||
lookatme | oh | ||
comborico1611 | Is tester a prolific occupation? | 01:54 | |
TEttinger | comborico1611: if you're studying, you're a student :) | ||
01:54
MasterDuke_ is now known as MasterDuke
|
|||
lookatme | I'm not get it, "prolific"? | 01:55 | |
TEttinger | if you're studding, you may be a horse | ||
lookatme | Haha :) | ||
comborico1611 | Heh. True, but i didn't want to give the impression I'm a formal student. | ||
TEttinger | true true | ||
01:55
piojo_ joined
|
|||
lookatme | We are all student in Perl6 | 01:56 | |
comborico1611 | Yup. | ||
TEttinger | I don't know what the employment situation is like for C. But I know I'd rather deal with C than recoil in horror at some of the C++ I see: github.com/imneme/pcg-cpp/blob/mas...#L513-L528 | 01:58 | |
01:58
itaylor57 left
01:59
mcmillhj joined
|
|||
comborico1611 | I can't follow that. | 01:59 | |
TEttinger | to be honest, I have no clue what that does. I think it's internal to that library, but I tried to port it | ||
it's C++ template gore | |||
comborico1611 | lol | 02:00 | |
I haven't learned c++14 update. | |||
02:01
lizmat joined
02:02
wander left
|
|||
TEttinger | I think that's actually some older version, since it was written around 2014 IIRC, or earlier | 02:03 | |
maybe C++11 | |||
02:03
mcmillhj left
|
|||
comborico1611 | Lookatme, how long have you been in the business? | 02:04 | |
Oh yeah, i forgot about 11. They must have messed up. 98, 11, 14, 17. | 02:05 | ||
TEttinger | haha | 02:06 | |
yeah | |||
it was C++0x for a while | |||
then the 00s passed with no update | |||
comborico1611 | I see. | 02:07 | |
TEttinger | it's not quite the same as Java 9, which was also delayed without end. But I wouldn't say a stable release of Java 9 has come out yet, since they released it by throwing it to the pavement | ||
comborico1611 | Hmm. I didn't know that. | ||
TEttinger | I just have had a rotten time with Java 9 stuff, it does seem to break most moderately-complex software | 02:08 | |
comborico1611 | That's too bad. I'm rooting for Java, in the Java vs C# battle. | ||
TEttinger | Java has more open source libs in the ecosystem, but C# is actually open source and won't get Oracle to sue you for billions of dollars if you fork it | ||
Oracle v. Google, settled out of court for $0 but caused lasting legal damage to open source as a concept, potentially. thanks Oracle... | 02:09 | ||
comborico1611 | Microsoft can turn rabid on you. | ||
02:10
itaylor57 joined
|
|||
comborico1611 | Hmm. I was unaware. | 02:10 | |
TEttinger | that's a concern, but Oracle already has | ||
Oracle's lawyers argued that the Java API, not even the code, was copyrightable, which no court had previously allowed | |||
which would make open source versions of closed source APIs illegal | |||
or at least a breach of copyright | 02:11 | ||
comborico1611 | I can see Microsoft making C# opensource for however many years for C# to get established, then start licensing it. | ||
TEttinger | can't | ||
it's MIT licensed, you can't pull the existing MIT licensed code out of that state | 02:12 | ||
OpenJDK is GPL with classpath exception, IIRC | |||
comborico1611 | You seem you have legal training, no? | ||
TEttinger | none, I just follow all this junk | ||
comborico1611 | Self-learned is better. I'm self learned legal student. | 02:13 | |
TEttinger | Oracle still holds tremendous influence over OpenJDK via funding development. they defunded JSON parsing in Java 9 for unknown reasons | ||
comborico1611 | So you think C# is a great balance to Java? | ||
TEttinger | Microsoft is currently the biggest contributor to the Linux kernel (all GPL, they I believe need to abide by Linux kernel contributor rules which may help the patent issue), and one of if not the largest organization contributing to open source on GitHub | 02:14 | |
it's a shocking turnaround. windows 10 still has lots of sketchy telemetry stuff | 02:15 | ||
oracle at least isn't doing that, other than the ask toolbar installer in the java installer | |||
comborico1611 | I hate 10 (9). | ||
TEttinger | same. I had to go through a serious amount of work to install windows 7 on this recent laptop, but it did work | 02:16 | |
02:16
mcmillhj joined
|
|||
TEttinger | ubuntu (I used xubuntu) has better out-of-the-box hardware support than windows 7, which is nicee | 02:16 | |
comborico1611 | Kubuntu for me. | 02:17 | |
TEttinger | if a hardware switch on this laptop turns off, I plug in a liveusb and I can turn it on with the normal buttons from xubuntu. that only sometimes works from windows | ||
02:18
nadim left
|
|||
TEttinger | it's also rather surprising how insecure all versions of windows are... I have another usb that erases password protection on windows accounts, takes under 5 minutes. I made it because a friend's laptop had the fingerprint login stop working, and she hadn't ever used her password, so no way to get in... without erasing the password | 02:19 | |
we were both somewhat alarmed at how easy it was | 02:20 | ||
comborico1611 | Hmm. | ||
02:21
mcmillhj left
|
|||
comborico1611 | C# the name is a marketing lie. Should be Java++. | 02:23 | |
C# is trying to lure c++ guys. | 02:24 | ||
TEttinger | I've only needed to be her IT guy twice (plus one more time handling the computer buying), but the password thing I thought would be a huge deal to resolve. especially since the other IT issue was a nasty popup that looked like a clickjacking attempt | ||
kinda, C# is pretty close to C/C++ compared to Java | |||
it mixes a bunch of features from both | |||
comborico1611 | I read to the contrary, but i haven't investigated it myself. | 02:25 | |
TEttinger | it has unsigned types, which Java doesn't, and value types (like all types in C that aren't specifically references, I think) | ||
it has goto, though its use is strongly discouraged in most cases | 02:26 | ||
Java reserves the goto keyword but does not implement it | |||
C# has a limited amount of operator overloading, also unlike Java but like C++ | |||
some things are closer to Java, mostly in the lib. C#'s List is very close to ArrayList, though also C++ Vector | 02:27 | ||
lookatme | IDK C#, but heard it was better than Java | ||
TEttinger | it is | ||
I use Java as my primary language, but I also use some C#, and if I actually put the effort in to learn all the features in C# I think I would do some things differently | 02:28 | ||
comborico1611 | But the jobs... | ||
TEttinger | depends on industry and location | 02:29 | |
C# has a huge financial sector usage base | |||
Java seems more commonly used in Spanish-speaking countries, though I don't know why that would be | |||
comborico1611 | From our conversation, I'll keep an open mind to C#. | 02:30 | |
TEttinger | yeah it's really turned around, I wouldn't have even considered it in version 1.0 but it's advanced so well | ||
lookatme | In China, they like Java / PHP :) | ||
TEttinger | PHP, a recursive acronym for PHP Hates People | ||
lookatme | And C# also have a lot of chances :) | 02:31 | |
Haha | |||
comborico1611 | And what of Go? | 02:34 | |
lookatme | Golang sames like popular here, but only in Big City | 02:35 | |
02:35
mcmillhj joined
|
|||
lookatme | I think | 02:35 | |
comborico1611 | Well, I'd like to see little ol perl6 beat these guys. | 02:37 | |
I'm off to bed. Goodnight, guys. Thanks for the info! | 02:38 | ||
02:38
comborico1611 left
02:39
mcmillhj left
02:45
ilbot3 left
02:48
piojo_ left
02:54
mcmillhj joined
02:55
ilbot3 joined,
ChanServ sets mode: +v ilbot3
02:56
ryn1x joined
02:59
mcmillhj left
03:06
ryn1x left
|
|||
ZzZombo | Say, I have an array of string. Most of them have a prefix, so that you could group them by that prefix. I need to sort string in groups, and then groups themselves. Anybody have done something like this? | 03:08 | |
lookatme | .classify ? | 03:09 | |
03:09
mcmillhj joined
|
|||
ZzZombo | Example: ('asd1','asd2','asd0','word','another','wordYes') -> ('another','asd0','asd1','asd2','word','wordYes') | 03:10 | |
lookatme | m: my @strs = < foo foo1 foo2 foo3 foo4 bar bar1 bar2 bar3 bar4 >; say @strs.classify({ $^a.substr(0,3) }) | ||
camelia | {bar => [bar bar1 bar2 bar3 bar4], foo => [foo foo1 foo2 foo3 foo4]} | ||
ZzZombo | see, my string are of different length. It can be arbitrary. | ||
strings* | |||
lookatme | sort according you own rule ? | 03:11 | |
s/you/your/ | |||
geekosaur | I'm not understanding what exactly you're after; your example is just an ordinary lexical sort | ||
03:11
noganex joined
|
|||
ZzZombo | Ah, sorry, I got that wrong. Silly me. I should NOT change the order of groups. | 03:12 | |
Example: ('asd1','asd2','asd0','word','another','wordYes') -> ('asd0','asd1','asd2','word','wordYes','another') | 03:13 | ||
Unless I'm merging them. | |||
lookatme | :) I'm not get it | 03:14 | |
ZzZombo | Like with the group 'word'. | ||
03:14
mcmillhj left
03:15
noganex_ left
|
|||
lookatme | Hmm, lunch time | 03:15 | |
03:16
colomon left
03:17
colomon joined
|
|||
ZzZombo | lookatme: rosettacode.org/wiki/Longest_commo...fix#Perl_6 | 03:18 | |
except in my case it needs to figure the prefix itself, given a list of strings, for each group. | 03:19 | ||
03:19
ufobat_ joined
03:23
ufobat left
03:26
cdg joined
03:28
mson joined
03:30
cdg left
03:38
cdg joined
03:45
cdg left
03:46
ryn1x joined
|
|||
lookatme | ZzZombo, I think it's easily use that `lcp` build your code. | 03:48 | |
03:50
pilne left,
ryn1x left
03:54
ryn1x joined
04:01
ryn1x left
04:06
Cabanossi left,
ryn1x joined
04:08
Cabanossi joined
04:13
ryn1x left
04:14
ryn1x joined
|
|||
piojo | m: my Int constant Four = 'a string'; say Four ~ ', ' ~ Four.WHAT; | 04:16 | |
camelia | Use of uninitialized value of type Str in string context. Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. a string, in block <unit> at <tmp> line 1 |
||
piojo | m: my Int constant Four = 'a string'; say Four; say Four.WHAT; | 04:18 | |
camelia | a string (Str) |
||
piojo | I saw this syntax in LWP::Simple, and it obviously doesn't work. Is it supposed to, or is it an accident that this parses correctly but doesn't work as it appears? | ||
04:19
aborazmeh joined,
aborazmeh left,
aborazmeh joined
04:20
AHoboWithAShotgu left
04:23
wamba joined
04:24
ryn1x left
|
|||
ZzZombo | How can I when `.spurt`ing a `Str` tell Perl what endianess the resulting file should be in for UTF-16? | 04:28 | |
04:30
ryn1x joined
04:35
ryn1x left
04:36
ryn1x joined
04:37
Cabanossi left
04:38
Cabanossi joined
04:45
ryn1x left
|
|||
lookatme | ZzZombo, do you mean named argument `enc` of `open` | 04:49 | |
ZzZombo | no | 04:50 | |
I mean `:enc` in `.spurt` | |||
04:51
Cabanossi left
04:52
Cabanoss- joined,
Cabanoss- is now known as Cabanossi
|
|||
lookatme | Maybe you should specify the encoding to UTF-16LE or UTF-16BE, but I don't think rakudo support them currently | 04:53 | |
04:55
khw left
|
|||
lookatme | m: my Int constant Four = 'a string'; | 04:57 | |
camelia | ( no output ) | ||
lookatme | m: my Int $Four = 'a string'; | ||
camelia | Type check failed in assignment to $Four; expected Int but got Str ("a string") in block <unit> at <tmp> line 1 |
||
lookatme | piojo, I think it's a bug or something, the type constraint does not work.. | 04:58 | |
04:58
ryn1x joined
05:09
mcmillhj joined
05:12
ryn1x left
05:14
mcmillhj left
05:19
ryn1x joined
05:20
kitsunenokenja left
05:26
ryn1x left
05:29
aborazmeh left
05:33
ryn1x joined
05:37
mson left
05:40
wamba left
05:43
mson joined
05:48
ryn1x left
06:04
Cabanossi left
06:06
Aceeri joined
06:07
Cabanossi joined
06:10
ryn1x joined
06:18
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:19
ryn1x left
|
|||
geekosaur | I feel like that's a known bug but can't find it in RT quickly | 06:24 | |
06:28
domidumont joined
06:29
wamba joined
06:34
domidumont left
06:35
domidumont joined
06:38
aborazmeh left
06:39
darutoko joined
06:42
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:46
aborazmeh left
06:48
ryn1x joined
06:49
aborazmeh joined
06:50
aborazmeh left,
aborazmeh joined
06:52
ryn1x left
06:56
aborazmeh left
06:57
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:00
parv joined
07:01
aborazmeh left
07:05
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:12
aborazmeh left,
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:16
lowbro joined,
lowbro left,
lowbro joined
07:17
aborazmeh left
07:22
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:27
aborazmeh left
07:29
wander joined
07:31
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:32
konsolebox_ left
07:34
konsolebox joined,
lizmat left
07:35
espadrine left
|
|||
wander | what is the efficiency of %my-hash.elems? | 07:36 | |
O(1) or O(n)? | |||
07:36
aborazmeh left
|
|||
jast | if you want all elements, constant time is impossible pretty much by definition | 07:37 | |
wander | ? | 07:38 | |
i want to get how many elems | |||
if we use a bit to store it, it is O(1); if we count it, then may be O(n) | 07:39 | ||
i don't know which way we use | |||
07:39
konsolebox left
07:40
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
lizmat joined,
ryn1x joined
|
|||
wander | seems the former, i've built a hash contain 100000 elems, that costs some time. and %hash.elems uses no time. | 07:41 | |
jast | possibly the time is spent as you iterate over it | 07:42 | |
07:45
ryn1x left
07:46
konsolebox joined
|
|||
AlexDaniel | wander: it depends on the backend | 07:47 | |
wander: on MoarVM it's O(1) because the number of elements is stored | |||
wander: see this for example: github.com/MoarVM/MoarVM/blob/bc6e...ash.h#L489 | |||
wander | AlexDaniel: what about MoarVM | ||
thank you | |||
AlexDaniel | on jvm it's probably O(1) too | 07:49 | |
but I don't have any proof :) | |||
07:49
aborazmeh left
07:50
aborazmeh joined,
aborazmeh left,
aborazmeh joined
07:51
konsolebox left
|
|||
AlexDaniel | ok, on jvm it's implemented with a simple HashMap and .size on a HashMap is O(1) too github.com/perl6/nqp/blob/4fd4b48a...ce.java#L8 | 07:51 | |
07:52
domidumont left
07:53
konsolebox joined
07:57
mson left
|
|||
AlexDaniel | wander: as far as I can see, it is O(n) on js backend | 07:58 | |
but I could be wrong | |||
jast | whoops, my bad. I had a different language in mind where elems returns all elements, not the count... | ||
AlexDaniel | so it's implemented using a Map, and I found this: tc39.github.io/ecma262/#sec-get-ma...otype.size | 07:59 | |
so according to that description, it's definitely O(n) | |||
but maybe real implementations are allowed to cheat? I don't know | 08:00 | ||
08:00
konsolebox left
|
|||
AlexDaniel | 💤 | 08:01 | |
08:01
konsolebox joined
|
|||
wander | :P | 08:03 | |
08:04
wamba left
08:05
Cabanossi left
08:06
AlexDaniel left,
konsolebox left
08:07
Cabanossi joined
08:08
konsolebox joined
08:10
margeas joined
08:11
nadim joined
08:13
konsolebox left
08:14
konsolebox joined
08:17
zakharyas joined
08:19
lizmat left
08:21
domidumont joined
08:22
ryn1x joined
|
|||
wander | how to overload operation on custom class? | 08:25 | |
i use form like `method infix:<&>(BitMap \other)` | |||
but in `dd ($bitmap & (BitMap.new(n=>10).set(5)))`, `&` acts like all-junction operator | 08:26 | ||
08:26
konsolebox left
08:27
wamba joined,
ryn1x left
|
|||
lookatme | The custom operator must be sub | 08:27 | |
moritz | and receive two arguments: left and right operand | 08:28 | |
wander | sub infix:<&>(BitMap \this, BitMap \other) | ||
08:28
konsolebox joined
|
|||
wander | ok i will try it | 08:28 | |
moritz | use "multi sub" | 08:29 | |
wander | ok | ||
moritz | otherwise you'll override all uses for this operator | ||
also, Perl 6 uses +& and ~& for bit-wise operators | |||
+ for numbers and ~ for strings | |||
wander | i know | ||
moritz | then don't use &, which is for junctions | ||
wander | oh, right | 08:30 | |
for consistent | |||
besides, what's the best way to define multi object construction. i try to overload BUILD, but seems i cannot do that. | 08:31 | ||
ZzZombo | Can I combine `grep` and `map` in one go? It's often needed to perform some sort of operation on matched items, and I'd like not to iterate again on resulting list with `map`, when `grep` could run code on matched elements right away. | 08:33 | |
08:33
jonas1 joined
08:34
konsolebox left
|
|||
wander | maybe i can overload `new` | 08:34 | |
08:35
xtreak joined,
konsolebox joined
|
|||
DrForr | say grep { ++$_; True }, 1, 2, 3; | 08:35 | |
evalable6 | (exit code 1) Cannot resolve caller prefix:<++>(Int); the following candidates match the t… |
||
DrForr, Full output: gist.github.com/fff40fa9b79118e784...3539db8151 | |||
DrForr | say grep { $_=$_+1; True }, 1,2,3 | 08:36 | |
evalable6 | (exit code 1) Cannot assign to an immutable value in block <unit> at /tmp/nIvGn8PWek line 1 |
||
moritz | m: say (1..10).map: { next if $_ %% 2; $_ * 2 } | ||
camelia | (2 6 10 14 18) | ||
moritz | ZzZombo: ^^ | ||
DrForr | ah, right, you can still use the old "return undef" "trick" :) | 08:37 | |
moritz | or you can make it a regular loop: | ||
m: say gather for 1..10 { unless $_ %% 2 { take 2 * $_ } } | |||
camelia | (2 6 10 14 18) | ||
ZzZombo | I could never get my head around this `gather/take` thing. | 08:39 | |
moritz | it's not that hard | 08:40 | |
gather { take 1; take 2} | 08:41 | ||
is pretty similar to | |||
{ my @temp; push @temp, 1; push @temp, 2; @temp } | |||
lookatme | m: say gather { take 1; sub inner() { take 2;}(); } | ||
camelia | (1 2) | ||
moritz | except that it's also lazy (the inner block stops after the first "take" until the value is consumed by the caller) | 08:42 | |
wander | m: class A {has $!x; method new($x) {self.bless(:$x)};method x() {$!x;};};say A.new(4).x; | 08:44 | |
camelia | (Any) | ||
08:45
xtreak left
|
|||
wander | why? how `bless` works? i've found we have `new`, `bless`, `BUILD`, etc. to write correct code is an exploration | 08:45 | |
08:45
xtreak joined
|
|||
wander | surely i expect $!x to be 4 | 08:45 | |
08:47
wamba left
|
|||
lookatme | docs.perl6.org/language/classtut#Constructors | 08:48 | |
08:49
dakkar joined
08:50
xtreak left
|
|||
lookatme | wander, Private attributes really are private. This means that bless is not allowed to bind things to &!callback and @!dependencies directly. | 08:50 | |
wander | so i need to overload BUILD? | ||
lookatme | yeah | ||
wander | but i try to write multi submethod BUILD.. | ||
08:51
imcsk8_ joined
|
|||
lookatme | m: class A {has $!x; submethod BUILD(:$!x) {}; method x() {$!x;};};say A.new(4).x; | 08:51 | |
camelia | Default constructor for 'A' only takes named arguments in block <unit> at <tmp> line 1 |
||
lookatme | m: class A {has $!x; submethod BUILD(:$!x) {}; method x() {$!x;};};say A.new(x => 4).x; | ||
camelia | 4 | ||
moritz | wander: what do you want to achieve? | ||
wander | BitMap constructed by size/n or bits direactly | 08:52 | |
08:52
jeek left
|
|||
moritz | wander: what should the calls to .new look like? | 08:53 | |
wander | BitMap.new(size=>10) or BitMap.new(bits=>7) # where 7 = (0111)_2 | ||
inside the constructor, i need to init other attr using param passed | 08:54 | ||
so the initial logics are different, i think i need overload constructor in some way | |||
lookatme | m: class A {has $!x; method new($x) { self.bless(:$x); }; submethod BUILD(:$!x) {}; method x() {$!x;};};say A.new(4).x; | 08:55 | |
camelia | 4 | ||
wander | gist.github.com/W4anD0eR96/73d4c66...8fc2ee73ea | ||
lookatme: yes, it can be done if only one construction logic exists. without `multi` or something | 08:56 | ||
moritz | wander: just add a submethod BUILD(:$!mask, :$!size, :$!bits) {} | ||
08:56
wamba joined
|
|||
moritz | and you're done | 08:56 | |
wander | oh | ||
that works. thank you two, sorry for i'm not so familiar with oo in psix | 08:58 | ||
08:58
ryn1x joined
|
|||
lookatme | That's why read the document is important. | 09:00 | |
wander | i read it not deeply :P | 09:01 | |
09:02
konsolebox left,
konsolebox joined
09:03
ryn1x left
|
|||
piojo | Wow, I didn't know you could use "next" in map. moritz, is this obscure or should I add it as another example to the `map` documentation? | 09:07 | |
09:08
steeznson joined
|
|||
wander | m: class A {has Int $.x;multi sub infix:<+&>(A $a, A $b) { $a.x +& $b.x };};say (A.new(x=>4) +& A.new(x=>4)); | 09:09 | |
camelia | Cannot resolve caller Numeric(A: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at <tmp> line 1 |
||
09:10
xtreak joined
|
|||
wander | iI thought it would be well.. | 09:10 | |
now its signature is multi sub infix:<+&>(Type lhs, Type rhs) {...} | 09:11 | ||
m: class A {has Int $.x;multi method and(A $b) { self.x +& $b.x };};say (A.new(x=>4).and(A.new(x=>4))); | 09:12 | ||
camelia | 4 | ||
wander | i can do that in *this* way, but what about override operator.. | ||
m: class A {has Int $.x;};multi sub infix:<+&>(A $a, A $b) { $a.x +& $b.x };say (A.new(x=>4)+&(A.new(x=>4))); | 09:17 | ||
camelia | 4 | ||
09:21
zakharyas left
09:22
sena_kun joined,
zakharyas joined
09:25
titsuki_ joined
09:26
scimon joined,
titsuki left
|
|||
moritz | piojo: it's intentional; I'm pretty sure we have tests for that in roast | 09:27 | |
09:29
mr-foobar left
|
|||
wander | m: class A { has Int $.x;multi method new(:n($size)) { self.bless(:x($size))};multi method new(:b($bits)) { self.bless(:x($bits))};submethod BUILD(:$!x) { }};multi sub infix:<+&>(A \this, A \other){my $bits = (other.x +& this.x);A.new(n=>$bits)};say A.new(n=>4) +& A.new(n=>4); | 09:36 | |
camelia | A.new(x => 4) | ||
09:36
ryn1x joined
|
|||
wander | m: class A { has Int $.x;multi method new(:n($size)) { self.bless(:x($size))};multi method new(:b($bits)) { self.bless(:x($bits))};submethod BUILD(:$!x) { }};multi sub infix:<+&>(A \this, A \other){my $bits = (other.x +& this.x);A.new(b=>$bits)};say A.new(n=>4) +& A.new(n=>4); | 09:37 | |
camelia | Type check failed in assignment to $!x; expected Int but got Any (Any) in submethod BUILD at <tmp> line 1 in method new at <tmp> line 1 in sub infix:<+&> at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
wander | shortest example: | 09:38 | |
m: class A { has Int $.x;multi method new(:n($size)) { self.bless(:x($size))};multi method new(:b($bits)) { self.bless(:x($bits))};submethod BUILD(:$!x) { }};say A.new(b=>4); | |||
camelia | Type check failed in assignment to $!x; expected Int but got Any (Any) in submethod BUILD at <tmp> line 1 in method new at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
wander | m: class A { has Int $.x;multi method new(:n($size)) { self.bless(:x($size))};multi method new(:b($bits)) { self.bless(:x($bits))};submethod BUILD(:$!x) { }};say A.new(n=>4); | ||
camelia | A.new(x => 4) | ||
moritz | piojo: I found one test for it with a quick "git grep", in S32-list/map.t: is (1..4).map({ next if $_ % 2; 2 * $_ }).join('|'), ... | ||
wander | turn to figure out how named parameter passed | 09:39 | |
moritz | wander: declare the named params as mandatory | ||
multi method new(:n($size)!) { ... } | |||
piojo | moritz: thanks. I'll make a note and try to add that. Because I've returned |() in map, but 'next' is much less awkward | 09:40 | |
moritz | you can also use last in map, fwiw | ||
09:41
ryn1x left
|
|||
piojo | thanks | 09:41 | |
wander | does that mean if i want to apply `multi method new(:n($size)!) { ... }`, i have to pass a parameter named `n`? | 09:42 | |
without `!` and method can take named parameter not appears in signature cause the issue | 09:43 | ||
moritz | yes, named params are optional by default | ||
wander | hah, i need more practice to keep in mind | 09:46 | |
wander dinner& | |||
09:51
wander left
09:55
wamba left
09:57
nadim left,
rindolf joined,
wander joined
09:58
TEttinger left,
wamba joined
10:03
aborazmeh left
10:12
ryn1x joined
|
|||
ZzZombo | timotimo, so what about that `write_fhb` thing? | 10:12 | |
10:16
ryn1x left
10:17
parv left
10:25
xtreak left
10:26
xtreak joined
10:28
xtreak left
10:29
xtreak joined
10:36
Cabanossi left,
Cabanossi joined
10:38
araraloren joined
10:41
eliasr joined
10:48
ryn1x joined
|
|||
sjn | o/ | 10:49 | |
10:52
ryn1x left
|
|||
araraloren | o\ | 10:55 | |
10:59
astj left
11:00
dct joined,
dct left
11:01
dct joined,
dct left
11:03
domidumont left
11:04
domidumont joined
11:05
steeznson left
|
|||
timotimo | ZzZombo: there's a bug, but i'm not sure what's to blame. utf16 encoding returns a 16-bit-per-entry buf, but writing binary data only wants to deal with 8-bit-per-entry buffers. both make sense on their own | 11:07 | |
sacomo | hi all | ||
sjn looks at perl6 dynamic variables, and wishes $*HOSTNAME was one of them | 11:08 | ||
sacomo | I am experimenting with some ideas and was wondering if anyone here my have some input. I want to implement a module that allows a developer to override that module's functions internally to the module. | 11:09 | |
a solution I came up with uses multis | |||
DrForr | sacomo: have you looked at dynamic variables? | 11:10 | |
sjn | sacomo: why not just use callbacks? | ||
11:10
wamba left
|
|||
sacomo | ok, that might work. | 11:11 | |
DrForr | Oh, wait, overriding - Just expose the method in the class and let someone subclass it? | ||
11:12
astj joined
|
|||
sacomo | well, I want the dev to be able to pass in a replacement so that the core module uses their version instead of core | 11:12 | |
I have a solution, but it is clunky | |||
i will put together a gist... | |||
11:13
klapperl_ joined
|
|||
DrForr | class Foo { method X($z) { self._replace-me($z); } } class My::Foo is Foo { method _replace-me($z) { $z++ } } | 11:13 | |
11:15
wamba joined
|
|||
sacomo | gist.github.com/scmorrison/e8b73ec...adb54a863c | 11:16 | |
so that allows me to override the multi module-wide. So even if an internal sub from Foo calls bar it will use the external version | 11:17 | ||
11:17
pmurias joined
|
|||
DrForr | No need for that mechanism - Subclass Foo and replace method bar()? | 11:18 | |
sacomo | but will that version be used by all of Foo's other methods too? | ||
ZzZombo | So what is my best bet in writing data in an not implemented encoding? Turns out my file is actually UCS-2 LE with BOM. | 11:20 | |
DrForr | One mo, let me write up a gist. | ||
ZzZombo | Rakudo doesn't deal with it. | ||
sacomo | thanks | ||
11:21
ryn1x joined
|
|||
DrForr | gist.github.com/drforr/64c6adb7cca...7503eb323b | 11:22 | |
Woops, forgot to properly subclass. | 11:26 | ||
Update it. | |||
11:26
ryn1x left
|
|||
timotimo | ZzZombo: you can have a class implement the Encoder/Decoder role and register it with the encoding registry | 11:27 | |
you'd grab the .NFC of your incoming string and spit out 8bit bufs with the 16 bit numbers split either LE or BE | |||
and explode when the value is higher than 16bit, of course | |||
ZzZombo | I know nothing about the internals you suggested me to tinker with. Is there any examples? | 11:28 | |
Are* | |||
11:29
pmurias left
|
|||
timotimo | docs.perl6.org/type/Encoding#method_encoder - i got the name wrong, but they aren't internal, they are language features, iiuc | 11:30 | |
oh | |||
that's not the right place | |||
sacomo | DrForr, updated, but getting an error... | 11:31 | |
getting regular, regular... | |||
timotimo | but Encoding::Encoder only needs a single method called "encode-chars" that takes a Str:D and returns a Blob:D | 11:32 | |
DrForr | Oh, another tyop. | ||
There. | |||
Sorry, I'm distracted. | 11:33 | ||
ZzZombo | So I will need to create a subclass from that, and have its encode-chars turn $str.NFC -> Buf and return it? | 11:34 | |
DrForr | There. All better. | ||
ZzZombo | Then, how do I use it in spurt and similar functions? | 11:35 | |
sacomo | ok, I see how that works, but what I want is that whenever a method in Foo calls bar internally, or a method in another module that uses Foo, it will use the override | ||
timotimo | either just pass the encoder object in the :enc field, or make sure it has a proper .name and Encoding::Registry.register(MyUCS2Encoder) | 11:36 | |
also, i lied, you also need to create an Encoding that returns your Encoding::Encoder when .encoder is called on it | |||
and you register *that* | 11:37 | ||
also implement a decoder method that throws an X::NYI or something | |||
ZzZombo | It just got me thinking: why does Perl 6 read the supposedly UTF-16 file w/ no problem, but can't save it back? | 11:39 | |
Shouldn't it have problems reading it as well? | 11:40 | ||
samcv | is there a way to get the PID from a Proc object? | 11:41 | |
DrForr | sacomo: Someone calling Foo.bar(...) still has to choose to use the different version of bar(), right? | 11:42 | |
sacomo | not in this scenerio. so, the idea is that the core module might call bar() just as it usually does, but I want to remap all of its internal calls to bar() to an external version passed in regardless where Foo tries using bar() | 11:43 | |
at this stage I am just playing with this idea. that solution I put in the gist does solve this, but looking for other ideas. | 11:44 | ||
DrForr | I still think simply letting the client subclass your Foo class is the simplest answer. | 11:45 | |
11:45
piojo_ joined
|
|||
sacomo | so, the client isn't using bar() | 11:46 | |
DrForr | I think I need to see more code. | ||
sacomo | it is telling Foo to always use External.bar() whenever it wants to use something called bar() | ||
not even sure what this is called. i guess overriding | |||
The client isn't importing and then overriding, it is telling Foo to never use its version of bar() internally again, use this other version instead. | 11:47 | ||
DrForr | Yes, but your client instantiates Foo at some point, yes? | 11:48 | |
At which point you can pass your subclass with the new 'bar' method. | 11:49 | ||
11:51
comborico1611 joined
|
|||
sacomo | ok, I will play around with that idea. Passing in a new bar method would allow Foo::Some::Deeper::Class to reference it as well? | 11:54 | |
I am trying avoid having the client talk to Foo::Some::Deeper::Class directly | |||
DrForr | I think I still need to see some code, I think there's something upside-down here. | 11:55 | |
sacomo | well, at this stage it is all just a big experiement. so just looking for ideas. I will tinker with the subclass idea. | 11:57 | |
DrForr | Is there a module I can see on GH? | ||
sacomo | not yet, i will get something up to look at and ping you | 11:58 | |
thanks for the input too | |||
DrForr | Cool. I think you should look at dynamic variables as well, that might be a cleaner solution for you. | 11:59 | |
sacomo | ok, I will take a look | ||
DrForr | I really need to sit down and outline 'Perl 6 Best Practices.' | 12:00 | |
timotimo | ZzZombo: we'll make moarvm able to write not-only-8bit stuff and then the utf16 encoder will work as-is | ||
sacomo | that example gist I showed you is using a few dynamic variables in the is-override and me subs | ||
DrForr | Not to say that you're doing something wrong at all, I'm just musing. | ||
ilmari | timotimo: then you have to care about endianness... wouldn't it be better to leave that to the encoder? | 12:01 | |
moritz | DrForr: want to write a book, eh? :-) | 12:03 | |
DrForr | sacomo: gist.github.com/drforr/f2f2738ee1f...ce5baa468e | 12:04 | |
timotimo | the utf16 encoder will have to write a BOM | ||
DrForr | moritz: Don't get me started :) It's not impostor syndrome at this point, it's just not beng sure I have enough ideas. | 12:05 | |
12:05
raschipi joined
|
|||
DrForr | moritz: I've been bugged by quite a few people already :) | 12:06 | |
moritz | DrForr: if you want any kind of input or review, please let me know | 12:07 | |
I'll be happy help, if you want | 12:08 | ||
DrForr | Thanks. | ||
12:22
xtreak left
12:26
xtreak joined,
xtreak left
12:27
ryn1x joined
12:32
ryn1x left,
holyghost joined
|
|||
holyghost | There's SDL 2 game startup code at github.com/theholyghost/holly6src the subrepo is named PaganVisions2 | 12:37 | |
12:43
ivans_ left,
comborico1611 left,
comborico1611 joined
|
|||
sacomo | DrForr, here is a simplified version github.com/scmorrison/perl6-module...er/app.pl6 | 12:45 | |
12:57
zakharyas left
13:00
pmurias joined
|
|||
pmurias | m: "foo" ~~ /<:NoSuchUniCodePropertyForSure>/ | 13:01 | |
camelia | ( no output ) | ||
pmurias | ^^ do we want to silently accept unrecognized unicode properties? | ||
13:02
ryn1x joined
13:03
HoboWithAShotgun joined
|
|||
ZzZombo | so, timotimo, I'm looking into writing my own encoder, but I don't know how to 1) determine endianess, 2) swap byte order if needed. Can you provide some pointers? I can only find Perl5 solutions. | 13:03 | |
13:07
ryn1x left
|
|||
holyghost | timotimo : I've answered the mail, there's plenty more SDL -> 2.x to start from, thanks for the help | 13:12 | |
just game programming | |||
13:16
colomon left
13:20
raschipi left
13:27
mcmillhj joined
13:28
wamba left
13:32
piojo_ left
13:33
wamba joined
13:35
Cabanossi left
13:37
Cabanossi joined
13:39
markmont joined
|
|||
Ulti | win 2 | 13:39 | |
buggable | Ulti, Thank you for entering Accidental /win Lottery! The next draw will happen in 2 weeks, 10 hours, 20 minutes, and 5 seconds | ||
Ulti | hah | 13:40 | |
nice | |||
what do I win.... | |||
is it the respect of my peers? | |||
jast | you'll find out in 2 weeks, 10 hours, 20 minutes, and 5 seconds, minus delta t | ||
13:40
ryn1x joined
|
|||
Ulti | that is a lot of hype | 13:41 | |
jast | I wonder if it's static or random | ||
win 14 | |||
buggable | jast, Thank you for entering Accidental /win Lottery! The next draw will happen in 2 weeks, 10 hours, 18 minutes, and 33 seconds | ||
jast | imagine that. | ||
Ulti | worryingly counting down to something | ||
this makes me want to fix my emotionally sensitive bot | 13:42 | ||
jast | though if I win, I'll cede my prize to you, after all I didn't truly enter by accident | ||
13:45
ryn1x left
|
|||
Ulti | well depending on how careful the implementaiton is perhaps I can spam win via PM and up my share | 13:46 | |
nope :( too smart | |||
13:47
cdg joined
|
|||
jast | so I guess you'll need sockpuppet accounts | 13:47 | |
13:51
jonas1 left,
cdg left
13:52
cdg joined
14:00
liztormato joined
14:08
zakharyas joined
|
|||
comborico1611 | Does any programming language truly pass by reference? | 14:10 | |
Here for context stackoverflow.com/questions/222949...rence-in-c | 14:11 | ||
perlpilot | comborico1611: perl? | 14:13 | |
(sorta :) | |||
14:14
liztormato left
|
|||
comborico1611 | Perl and perl6? | 14:15 | |
14:15
mson joined
|
|||
perlpilot | Perl 5 | 14:15 | |
pmurias | comborico1611: in c++ you can mark something as passed by reference | ||
comborico1611 | Static? | 14:16 | |
14:16
ryn1x joined
|
|||
araraloren | Many language pass object(not native type) by reference, like JAVA C# Python Perl6 | 14:16 | |
perlpilot | yeah, that's true too | 14:17 | |
ZzZombo | There used to be official online Perl6 compiler, right? | ||
comborico1611 | Hmm. I think I'm getting in-over-my-head with this question. The Sam | ||
perlpilot | "official"? | ||
pmurias | m: say('is this an online Perl 6 compiler?') | 14:18 | |
camelia | is this an online Perl 6 compiler? | ||
comborico1611 | Thanks for the input! | ||
holyghost | *lol* | ||
ZzZombo | nah, it is missing modules I'd like to use. | ||
holyghost | You probably need a 2 or 3D eplxorer program :-) | 14:19 | |
just pop up from your irc client | |||
that's what I would like, I once made a picture distribution of image from lynx | 14:20 | ||
pmurias | ZzZombo: the js backend is still a WIP so you will have to wait for your super fancy with-in-browser-graphic REPL | ||
14:20
ryn1x left
|
|||
ZzZombo | uh, now perl REPL prints garbade characters whenever I press Backspace. | 14:20 | |
holyghost is ompilint 2017 10 | 14:21 | ||
araraloren | ZzZombo, please install Readline | ||
holyghost is ompilin*g* 2017 10 | |||
holyghost is compilin*g* 2017 10 | |||
araraloren | or Linenoise | ||
jast | three tries, not bad :) | ||
Altreus | re a conversation in #perl - does perl6 maintain stack information when an exception is re-thrown? | 14:22 | |
holyghost | Altreus : good point, I still need to read the code | 14:23 | |
Altreus | does the spec mention the idea? :) | ||
14:24
zakharyas left
|
|||
holyghost | probably it should have just an operation stack, unless we want more than that :-) | 14:24 | |
Altreus | maybe it should! Python3 has this behaviour and I'd like to be able to maintain my obstinate distaste for python | ||
moritz | m: sub f() { g }; sub g() { die "foo" }; sub h() { f(); CATCH { } }; h() | ||
camelia | foo in sub g at <tmp> line 1 in sub f at <tmp> line 1 in sub h at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
ZzZombo | WTF | ||
why does `zef` change my console font settings? It's ugly! | |||
14:24
zakharyas joined
|
|||
Altreus | more like how | 14:24 | |
holyghost | I am happy to be a perl6 archhacker but I do need to read the code | 14:25 | |
araraloren | I don't think zef can change your font settings | ||
moritz | Altreus: seems like contains the original stack trace | ||
holyghost | moritz : if we want a SDL 2 deployment of camelia outputs, would it be doable ? | ||
ZzZombo | But running it sure does change that. | ||
holyghost | need the right irc client I guess | 14:26 | |
Altreus | hmm | ||
scimon | sacomo: Reading your earlier stuff why not just use a Role instead of a Class? | ||
Altreus | m: sub f() { g }; sub g() { die "foo" }; sub h() { f(); CATCH { default { die $_ } } }; h() | ||
camelia | foo in block at <tmp> line 1 in sub g at <tmp> line 1 in sub f at <tmp> line 1 in sub h at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Altreus | is that the exact implied code? | ||
holyghost | You're always talking in subs you should need to display modules | 14:27 | |
moritz | holyghost: what kind of output does SDL produce? | ||
holyghost | moritz : it's SDL 2 now | 14:28 | |
14:28
khw joined
|
|||
jast | ZzZombo: it's more likely that some of its output triggers a weird render mode in your terminal emulator. does it persist into new terminal sessions/windows, or when you use the 'reset' tool? | 14:28 | |
sacomo | scimon, that might work. I want to set an override at the initial setup, and have the overrided method used throughout the module regardless of where the original is called from, even from within the origin core module's subclasses, etc. | ||
moritz | holyghost: what kind of output does SDL 2 produce? | ||
holyghost | SDL libs | ||
to load | |||
so if you alter BitchX to display the jvm or moarvm code it should run within client | 14:29 | ||
maybe .class files, I dunno | |||
moritz | uhm, count me out | ||
holyghost | sure | ||
moritz | you can fork camelia, and try to patch the fork | 14:30 | |
github.com/perl6/evalbot | |||
but... I don't think IRC is the right medium for that | 14:31 | ||
holyghost | you need the SDL2:Raw module then open a window to paint and event upon | ||
holyghost complies | |||
scimon | sacomo: If you're using a factory you can always do runtime composition. my Foo $foo .= new; $foo does FoeOverride; return $foo; | ||
Because runtime composition is funny. | 14:32 | ||
holyghost | AFAIK you need to patch the BitchX client to put the code through, as I understand | ||
it's about botwise | |||
parse-wise of in - ouput | 14:33 | ||
scimon | m: role Foo { method bar() { "Foo::bar" } };role Foo2 does Foo { method bar() { "Foo2::bar" } };my Foo $f .= new;say $f.bar;$f does Foo2;say $f.bar;my Foo2 $f2 .= new;say $f2.bar | ||
camelia | Foo::bar Foo2::bar Foo2::bar |
||
scimon | :D | ||
holyghost | moritz : I might do that in the future, but as you know the perl6 input is parsable | 14:34 | |
you have to open a window with some parser and put it into your X11 window system | |||
e.g. SDL 2 | |||
holyghost is compiling 2017 10 | 14:35 | ||
14:35
Cabanossi left
|
|||
holyghost | deadfall :-) | 14:36 | |
sacomo | scimon, one thing is that Foo::Extra for example might make a regular call to Foo::bar from inside the module without being aware of the Foo2 version when I initiated Foo | ||
scimon | Ahhhh. modules. | 14:37 | |
14:37
Cabanossi joined
|
|||
sacomo | right | 14:37 | |
holyghost | \o Cabanossi | ||
sacomo | that is what I have come up with so far. the working example in that link | ||
ZzZombo | This doesn't work in my local Perl REPL but works with camelia: | 14:38 | |
`use Encode:from<Perl5> <decode encode>;` | |||
Type check failed in binding to parameter '$handle'; expected CompUnit::Handle but got Sub (sub EXPORT (*@args) {...) | |||
in any statement_control at C:\rakudo\share\nqp\lib/Perl6/Grammar.moarvm line 1 | |||
my last hope at tackling this encoding problem died so far :( | 14:39 | ||
14:41
charsbar left
|
|||
holyghost | moritz : what did you want to say that SDL 2 does produce ? | 14:42 | |
the GUI should come out from it, by using your system's jvm/moarvm modules | 14:43 | ||
14:44
charsbar joined
|
|||
holyghost | so a download as e.g. hotjava | 14:44 | |
moritz | holyghost: I know that it doesn't work through plain IRC, so it won't land in the official camelia | ||
holyghost | sure | ||
moritz | holyghost: if you need a special client, there is not much benefit in using IRC at all, IMHO | 14:45 | |
holyghost complies | |||
I'd like to have a decent bot for it | |||
like displaying my image files from lynx | 14:46 | ||
It needs an API | |||
pastebin etc. are ok though, I do understand | |||
14:49
ryn1x joined
|
|||
ZzZombo | pastebin.com/ViqqpsCQ | 14:52 | |
Looks like the new `zef` that comes with the latest Star release is borked, at least on Windows. | |||
Nothing I've tried can be installed or upgraded. | 14:53 | ||
14:53
ryn1x left
15:06
Aceeri left
15:13
AlexDaniel joined
15:15
mcmillhj left
15:21
zakharyas left
15:26
zakharyas joined
15:31
mcmillhj joined
15:32
araraloren left
|
|||
stmuk | ZzZombo: have you tried the following? | 15:35 | |
cd %USERPROFILE% | |||
rd /s .zef | |||
rs /s .perl6 | |||
15:35
holyghost left,
ryn1x joined
|
|||
stmuk | ZzZombo: Inline::Perl5 didn't work on Windows last time I tried anyway | 15:36 | |
ZzZombo | ir works. | 15:37 | |
stmuk | ? | ||
15:37
domidumont left
|
|||
ZzZombo | the module, and I just followed the nuke advice from an issue, zef works for now. | 15:38 | |
15:40
ryn1x left
15:42
astj left
|
|||
stmuk | there is a quoting bug in the Windows qqx which breaks (or broke) Inline::Perl5 | 15:42 | |
a problem with rakudo itself | 15:43 | ||
Ulti | < pmurias> ZzZombo: the js backend is still a WIP so you will have to wait for your super fancy with-in-browser-graphic REPL <--- Jupyter REPL lets you output SVG inline ;) | 15:44 | |
github.com/bduggan/p6-jupyter-kernel | |||
the tab complete on it is quite nice too | 15:45 | ||
github.com/bduggan/p6-jupyter-kern.../svg.ipynb | |||
also Im noticing that GitHub can render that notebook.... which is impressive! | 15:46 | ||
does that mean they have Rakudo and the ipython stuff running somewhere? | |||
nah all pre rendered | 15:48 | ||
15:52
lowbro left
|
|||
Ulti | is there any way to get the union of a bag where the counts are summed together? | 15:55 | |
15:56
zakharyas left,
zakharyas joined
|
|||
dogbert2 | m: bag(<a a b c a d>) (+) bag(<a a b c c>) === ("a"=>5,"c"=>3,"b"=>2,"d"=>1).Bag | 15:57 | |
camelia | WARNINGS for <tmp>: Useless use of "===" in expression "(+) bag(<a a b c c>) === (\"a\"=>5,\"c\"=>3,\"b\"=>2,\"d\"=>1).Bag" in sink context (line 1) |
||
dogbert2 | m: say bag(<a a b c a d>) (+) bag(<a a b c c>) === ("a"=>5,"c"=>3,"b"=>2,"d"=>1).Bag | 15:58 | |
camelia | True | ||
dogbert2 | m: say bag(<a a b c a d>) (+) bag(<a a b c c>) | ||
camelia | Bag(a(5), b(2), c(3), d) | ||
15:58
nadim joined
16:01
Mrofnet joined
|
|||
dogbert2 | Ulti: ^^ unless I totally sisunderstood what you wanted | 16:02 | |
dogbert2 sigh bad spelling | |||
16:02
perlpilot_ joined
16:03
zakharyas left
16:04
Merfont left
16:05
perlpilot left
|
|||
Ulti | nope thats it thanks dogbert2 | 16:05 | |
wander | what is the usual reason for | ||
'Aborting due to test failure: Algorithm::BitMap:ver<0.0.1> (use --force-test to override)' | |||
i'm follow the guide of Distributing Modules, and with 'zef install .' in my module dir it complains | 16:06 | ||
moritz | the usual reason is that a test fails | 16:07 | |
16:08
zakharyas joined
|
|||
wander | which test? i've run `perl6 t/01-basic.t` and passed it. that is the only test file. | 16:10 | |
16:11
mcmillhj left,
mcmillhj joined
16:12
Ven joined
|
|||
Ven | Hi, #perl6. | 16:12 | |
.u ² | |||
yoleaux | U+00B2 SUPERSCRIPT TWO [No] (²) | ||
16:13
Ven is now known as Guest99688
|
|||
comborico1611 | Hello! | 16:13 | |
16:13
Guest99688 is now known as Ven``
16:14
releasable6 left,
releasable6 joined,
ChanServ sets mode: +v releasable6
16:21
troys joined
|
|||
ZzZombo | <ZzZombo> so, timotimo, I'm looking into writing my own encoder, but I don't know how to 1) determine endianess, 2) swap byte order if needed. Can you provide some pointers? I can only find Perl5 solutions. | 16:22 | |
timotimo ^ | 16:23 | ||
16:27
wamba left
16:35
Ven`` left
16:40
ryn1x joined,
perlpilot_ is now known as perlpilot
16:44
ryn1x left
16:45
Khisanth left
16:50
Cabanossi left
16:51
Cabanossi joined
16:57
zakharyas1 joined,
Sound joined
17:02
zakharyas left
|
|||
wander | could someone do me a favor try this guy and figure out why `zef install .` complains? | 17:04 | |
github.com/W4anD0eR96/Algorithm-BitMap | |||
17:04
troys is now known as troys_
|
|||
perlpilot | cd | 17:04 | |
17:05
zakharyas joined
|
|||
perlpilot | wander: Parse errors: No plan found in TAP output | 17:06 | |
wander: either explicitly plan the number of tests or add a "done-testing" to the end | |||
17:07
zakharyas1 left
17:09
Khisanth joined
|
|||
wander | yes it works, thank you perlpilot | 17:11 | |
17:12
mcmillhj left
17:13
mcmillhj joined
17:15
scimon left,
Cabanossi left
|
|||
Geth | mu: f595b21d00 | (Zoffix Znet)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Remove post |
17:15 | |
ecosystem/W4anD0eR96-patch-1: 12c1959ed5 | (Alex Chen)++ (committed using GitHub Web editor) | META.list Add Algorithm::BitMap Thank you for submitting a module to the Perl 6 Ecosystem! If adding a new module please review the following check boxes and check the appropriate boxes by going to the preview tab and checking them interactively or alternatively replacing the space in the checkboxes with an X. Your work is appreciated and every module helps make the Perl 6 Ecosystem a bigger and better place ♥ - [X] I **agree** to the usage of the META file as listed [here](github.com/perl6/ecosystem#legal). ... (5 more lines) |
17:17 | ||
ecosystem: W4anD0eR96++ created pull request #379: Add Algorithm::BitMap |
17:18 | ||
17:18
Cabanossi joined,
TEttinger joined,
mcmillhj left
17:23
TEttinger left
17:27
ryn1x joined
|
|||
[Coke] hopes everyone is having a good week. | 17:28 | ||
17:31
wamba joined
|
|||
jnthn | It's a national holiday tomorrow, so I'm at least having a shorter week :) | 17:32 | |
17:33
dakkar left
17:35
Cabanossi left
|
|||
jnthn | .wun 36 | 17:36 | |
oops :) | |||
17:36
Cabanossi joined
17:38
mcmillhj joined
|
|||
jnthn bbl | 17:39 | ||
17:40
ryn1x left
17:41
Morfent joined,
ryn1x joined
17:43
mcmillhj left
17:44
Mrofnet left
17:46
ryn1x left
17:50
mcmillhj joined
|
|||
[Coke] | our national holidays are next week here in the states; I'm luck to have a 3 day work week | 17:52 | |
*lucky | |||
17:53
wamba left
17:55
mcmillhj left
17:57
ryn1x joined
18:04
mcmillhj joined,
domidumont joined
18:08
comborico1611 left
18:09
ryn1x left
18:10
zakharyas left,
ryn1x joined
18:12
comborico1611 joined,
zakharyas joined
18:16
ryn1x left
18:23
ryn1x joined
|
|||
tabv | :m rx/<alnum + [.-]>/ | 18:23 | |
m: rx/<alnum + [.-]>/ | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Quantifier quantifies nothing at <tmp>:1 ------> 3rx/<alnum +7⏏5 [.-]>/ |
||
tabv | m: rx/<[.-] + alnum>/ | ||
camelia | ( no output ) | ||
tabv | I would have expected the first one to work | ||
18:24
darutoko left
18:28
setty1 joined
18:29
ryn1x left
18:30
Sound left,
ChoHag left
|
|||
timotimo | ZzZombo: UCS2 doesn't have the concept of a byte order mark? | 18:31 | |
18:32
zakharyas left,
dakkar joined
18:33
Mrofnet joined
|
|||
timotimo | wikipedia is frustratingly unclear about that | 18:34 | |
m: use NativeCall; my $one = Buf[uint16].new(0xabcd); say nativecast(Buf[uint8], $one).perl; | 18:35 | ||
camelia | Internal error: unhandled target type in sub nativecast at /home/camelia/rakudo-m-inst-1/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 658 in block <unit> at <tmp> line 1 |
||
timotimo | m: use NativeCall; my $one = Buf[uint16].new(0xabcd); say nativecast(CArray[uint8], $one)[0].base(16); | ||
camelia | -33 | ||
timotimo | m: use NativeCall; my $one = Buf[uint16].new(0x1234); say nativecast(CArray[uint8], $one)[0].base(16); | ||
camelia | 34 | ||
timotimo | m: use NativeCall; my $one = Buf[uint16].new(0x1234); say nativecast(CArray[uint8], $one)[1].base(16); | ||
camelia | 12 | ||
timotimo | ZzZombo: that's how you determine endianness of your system | ||
well, one way at least | |||
and byte order swapping is simple, too, with a bit of bitwise arithmetic: | 18:36 | ||
m: my $before = 0x1234; my $after = $before & 0xff << 8 +| $before & 0xff00 >> 8; say $after.base(16) | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of << to do left shift; in Perl 6 please use +< or ~< at <tmp>:1 ------> 3 = 0x1234; my $after = $before & 0xff <<7⏏5 8 +| $before & 0xff00 >> 8; say $after. |
||
timotimo | m: my $before = 0x1234; my $after = $before & 0xff +< 8 +| $before & 0xff00 +> 8; say $after.base(16) | ||
camelia | all(1234, FF34, FF) | ||
timotimo | haha | ||
18:36
Morfent left
|
|||
timotimo | m: my $before = 0x1234; my $after = $before +& 0xff +< 8 +| $before +& 0xff00 +> 8; say $after.base(16) | 18:37 | |
camelia | 3412 | ||
timotimo | ZzZombo: does that help? | ||
18:41
sftp left,
sftp joined
18:44
ryn1x joined
18:52
ryn1x left
18:56
ryn1x joined
|
|||
hythm | Hi, Is there module to install to have colors in REPL? | 18:59 | |
timotimo | hythm: if you want syntax highlighting, maybe the jupyter kernel + an terminal shell for that can do it. if you mean printing out your own colored stuff, there's Term::ANSIColor for unix terminals | 19:00 | |
19:01
ryn1x left
|
|||
hythm | timotimo I meant syntax highlighting when writing in REPL. I will check jupyter kernel | 19:01 | |
19:02
konsolebox left
19:09
konsolebox joined,
evalable6 joined
19:17
AHoboWithAShotgu joined
19:18
HoboWithAShotgun left
19:24
wamba joined
19:26
robertle joined,
raschipi joined
19:27
Merfont joined
19:30
cdg left,
cdg joined,
Mrofnet left
19:32
ryn1x joined
19:34
cdg left
19:37
ryn1x left
19:38
raschipi left
19:40
AndChat|688961 joined,
comborico1611 left
19:44
AndChat|688961 left,
comborico1611 joined
19:46
Sound joined,
dakkar left
19:50
Sound left
20:05
domidumont left
|
|||
Ulti | hythm: you can use the jupyter kernel | 20:13 | |
;) | |||
if you set this up github.com/bduggan/p6-jupyter-kernel with the iperl6 alias the resulting REPL has some syntax highlighting | 20:14 | ||
and you get all the other reply goodness of jupyter | |||
hythm | Thanks timotimo and Ulti, I tried installing | 20:16 | |
using: zef install Jupyter::Kernel. but I got this error "Invalid json? File: /home/helganiny/.zef/store/JSON-Tiny-1.0.tar.gz/JSON-Tiny-1.0/.gitignore | 20:17 | ||
" | |||
so What I'm doing now, I will upgrade perl6 and zef then try again | 20:18 | ||
AlexDaniel | I don't get it… is GitLab really so hard to use, or is it just a habit? | 20:19 | |
Ulti | ? | 20:20 | |
timotimo | hythm: would be interesting to hear what your versions of things are | ||
AlexDaniel | I don't know. There's just something about it that makes me want to defenestrate it | 20:21 | |
20:21
mr-foobar joined
|
|||
hythm | timotimo: $ perl6 --version | 20:22 | |
This is Rakudo version 2017.07-132-gabf1cfe72 built on MoarVM version 2017.07-318-g604da4d0 | |||
implementing Perl 6.c. | |||
Dont know how to get zef version, zef --version doesn't provide it | 20:24 | ||
moritz | zef list --installed # or something like that | 20:25 | |
hythm | This is the output of zef list --installed: gist.github.com/hythm7/09322ec138b...133a5ee39f | 20:27 | |
moritz | zef:ver('0.1.26'):auth('github:ugexe') | 20:35 | |
0.1.32 is the current version | 20:36 | ||
hythm | Thanks moritz, I'm upgrading everything now, Will test after that | 20:38 | |
20:39
ryn1x joined
20:40
mcmillhj left
20:42
lizmat joined
20:44
ryn1x left
|
|||
tony-o | is telemetry in blead ? | 20:44 | |
lizmat | tony-o: yes, it lives in lib | 20:46 | |
20:48
ChoHag joined
|
|||
comborico1611 | I always thought Elements were the value stored in the Subscript. The thing in the subscript is just called a value. That's lame. | 20:48 | |
tony-o | lizmat: is it in the 6d preview? | 20:49 | |
fresh blead build and can't find Telemetry for 'use Telemetry' | 20:50 | ||
lizmat | tony-o: that's weird | ||
m: use Telemetry | |||
camelia | ( no output ) | ||
lizmat | works even in Camelia ? | ||
tony-o | oh dear. | ||
comborico1611 | I just realized the connection with camelia . . . | 20:51 | |
lizmat | m: use Telemetry; snap; sleep .2 | ||
camelia | Telemetry Report of Process #7349 (2017-11-16T20:51:28Z) Number of Snapshots: 2 Initial/Final Size: 87740 / 92172 Kbytes Total Time: 0.21 seconds Total CPU Usage: 0.01 seconds No supervisor thread has been running wallclo… |
||
Ulti | tony-o: have you switched to master? | ||
at least that caught me out when I first looked for the Telemetry stuff since it was the same time (ish) | 20:52 | ||
tony-o | Ulti: was building blead with rakudobrew but i'll build from the repo | ||
ugexe | its probably because rakudobrew calls `moar-blead` moar-blead-master` now instead of `moar-blead-nom`, so `rakudobrew switch moar-blead` could pick eithe rone | ||
tony-o | ah | ||
Ulti | tony-o: yeah but did you update rakudobrew to look at master | ||
ugexe | probably wanna delete ~/.rakudobrew/moar-blead-nom, and also run `rakudobrew self-update` | 20:53 | |
tony-o | nuking made it pick master instead of nom | ||
ty. | |||
Ulti | rakudobrew build moar master && rakudobrew switch moar-master && rakudobrew nuke moar-nom | ||
I think | |||
yeah | 20:54 | ||
ugexe | moar-blead is not the same as moar-master | ||
moar-blead should bring in blead nqp/moar as well | |||
Ulti | sure but it also doesnt switch from nom unless you nuke it in rakudobrew | ||
so if you nuke it and rebuild it works | |||
ugexe | yes, but nuke moar-nom will not do that, and `moar-master` should be `moar-blead-master` (or just remove the -master) | 20:55 | |
Ulti | 4m7.365s <--- dealing with a 44MB file :( I regret my choice to use Perl 6 for this task | 20:56 | |
tony-o | ran nuke blead, self-update, and build blead and it switched from -nom to -master | ||
lizmat++ for Telemetry | |||
i can update benchmark now | 20:57 | ||
Ulti | ok interesting the lines IO part is only 36s of that 4 minutes | 20:58 | |
the grep with lots of .first into an array is slow I assume | 20:59 | ||
ooo .race can work \o/ | |||
21:07
mcmillhj joined
21:09
pilne joined
21:12
mcmillhj left
|
|||
Ulti | weird the .race was twice as slow as just the normal grep | 21:13 | |
but I also gamed that 5 minutes down to 54s using a set | 21:14 | ||
perlpilot | .oO( that's because it's turtles all the way down! ) |
||
21:16
rindolf left
21:24
ivans joined
21:26
mcmillhj joined
21:28
MasterDuke left
21:30
cdg joined
21:32
Cabanossi left
21:33
markmont left,
cdg left,
cdg joined
21:34
Cabanossi joined
21:35
mson left,
setty1 left
21:45
ryn1x joined
21:50
ryn1x left
21:56
kitsunenokenja joined
21:59
pmurias left
22:02
espadrine joined
22:08
markmont joined
|
|||
El_Che | someone with access to rakudo.org/how-to-get-rakudo/#Insta...Star-Linux present? | 22:11 | |
22:12
TEttinger joined
|
|||
lizmat | decommute& | 22:16 | |
22:16
lizmat left
22:19
mcmillhj left
22:26
sena_kun left
22:27
mr-foobar left,
sena_kun joined
22:28
mr-foobar joined
22:30
troys_ is now known as troys,
ryn1x joined
22:35
ryn1x left
22:36
perlpilot left
22:42
zakharyas joined
|
|||
tony-o | m: require ::('Telemetry'); sub n { ::('Telemetry').new; }; sub r ($a, $b) { say $b - $a; }; r(n,n); | 22:45 | |
camelia | Cannot resolve caller Numeric(Telemetry: ); none of these signatures match: (Mu:U \v: *%_) in sub r at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
22:53
MasterDuke joined
22:56
ryn1x joined
23:00
mson joined,
ryn1x left
23:08
kitsunenokenja left
23:13
zakharyas left
23:15
wamba left
23:29
ChoHag left
23:30
ryn1x joined
23:35
ryn1x left
23:56
ChoHag joined
|