Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-11-24

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:02 diakopter (polling of the watch list upon changes)
00:12 flussence AIUI the whole point of blocking event loops is to *avoid* polling... but this is out of my depth so I'm giving up.
00:15 diakopter I doubt you're out of your depth
00:16 benabik joined #perl6
00:18 flussence maybe not, but there's no point trying to figure out a nice, usable, efficient API when the part of the language it depends on hasn't even been specced :)
00:22 diakopter well, to implement sorear's idea (transfer ownership of built-in data structures among threads), it would need some kind of language support
00:24 diakopter (that specifies how to "pass" an object from one thread to another)
00:25 diakopter (and it would still need the thread id marker I was mentioning for my solution, or something effectively the same)
00:26 * lue wonders how to tell STD to not worry about nqp:: and pir:: stuff...
00:29 diakopter to use sorear's idea, it would have to be specified what happened when one thread tried to access an object that has been "passed" to another thread, and how to detect it.
00:37 sorear ownership transfer works fine in .net without language support
00:38 diakopter url? or keywords to google?
00:43 sorear http://docs.oracle.com/javase/spec​s/jls/se7/html/jls-17.html#jls-17.4.5
00:43 sorear the corresponding .net specs have similar language, but it's not as easy to link to
00:43 sorear buried in a PDF
00:46 diakopter what do you want to point out from 17.4.5?
00:46 sorear the concept of the happens-before ordering
00:46 diakopter what made you think I'm not quite familiar with this?
00:47 diakopter (and how does it relate to what I thought we were talking about)
00:50 sorear happens-before is what makes ownership transfer work
00:51 diakopter what ownership transfer?
00:52 diakopter I still have no idea what you're talking about in JVM or CLR contexts
00:52 diakopter where is there the notion of thread ownership?
00:56 diakopter (I sure don't see any)
01:00 xilo_ joined #perl6
01:07 benabik joined #perl6
01:08 colomon sorear++ # porting Native call
01:26 sisar joined #perl6
01:50 mtk joined #perl6
02:24 armitage81 joined #perl6
02:35 benabik joined #perl6
02:36 FROGGS_ joined #perl6
02:49 moritz FROGGS_++ # rakudo release
03:10 japhb brain++ # Nominally continuing to operate  ;-)
03:30 tokuhiro_ joined #perl6
03:31 diakopter moritz++ awake at 3 a.m.
03:31 moritz not by choice
03:34 moritz https://gist.github.com/4109216 # qast-sink-1 spectest, when I remove the &eager calls from 'for' codegen
03:35 moritz not disastrous, but not good either :-)
03:37 moritz oh
03:37 moritz it dies when the last statement in a file is a module declaration :(
03:39 am0c joined #perl6
03:39 moritz r: my $x = module A { }; nqp::say(nqp::can(A, 'sink'))
03:39 p6eval rakudo 50be5d: OUTPUT«No such method 'sink' for invocant of type 'Any'␤  in any find_method at src/gen/Metamodel.pm:149␤  in block  at /tmp/87txM0NOgQ:1␤␤»
03:40 roguechedder joined #perl6
03:42 jerome joined #perl6
03:42 dalek rakudo/qast-sink-1: a060144 | moritz++ | src/main.nqp:
03:42 dalek rakudo/qast-sink-1: sink last statement in main program
03:42 dalek rakudo/qast-sink-1: review: https://github.com/rakudo/rakudo/commit/a060144032
03:42 dalek rakudo/qast-sink-1: 55daa71 | moritz++ | src/main.nqp:
03:42 dalek rakudo/qast-sink-1: sink END phasers
03:42 dalek rakudo/qast-sink-1: review: https://github.com/rakudo/rakudo/commit/55daa71fa6
03:42 dalek rakudo/qast-sink-1: 8557cf4 | moritz++ | src/Perl6/Actions.pm:
03:42 dalek rakudo/qast-sink-1: also sink bare blocks
03:42 dalek rakudo/qast-sink-1: review: https://github.com/rakudo/rakudo/commit/8557cf4056
03:42 dalek rakudo/qast-sink-1: 9a6e1c5 | moritz++ | src/ (3 files):
03:42 dalek rakudo/qast-sink-1: [WIP] remove explicit &eager calls from "for"
03:42 dalek rakudo/qast-sink-1:
03:42 dalek rakudo/qast-sink-1: causes lots of fallout
03:42 dalek rakudo/qast-sink-1: review: https://github.com/rakudo/rakudo/commit/9a6e1c579b
03:45 orafu joined #perl6
03:48 roguechedder exit
03:49 lue does anyone know if rakudo's actions are currently broken?
03:50 moritz lue: what do you mean?
03:50 moritz lue: rakudo/nom passes its spectests, so they can't be broken too badly
03:51 lue I'm trying to use actions and I'm still getting a match object in return. But if rakudo's working, it's most likely a bug on my part. /me investigates some more.
03:51 moritz "in return"?
03:52 moritz lue: a match always returns a Match object; make() only sets its .ast
03:52 lue *facepalm*
03:53 * lue notes to re-read Day 21 of the advent calendar more closely next time.
04:13 cognominal joined #perl6
04:36 Psyche^ joined #perl6
04:37 benabik joined #perl6
04:39 cognominal joined #perl6
04:39 tokuhiro_ joined #perl6
05:00 cognominal joined #perl6
05:33 thou joined #perl6
05:34 rurban_ joined #perl6
05:39 rurban_ joined #perl6
05:50 am0c joined #perl6
05:57 REPLeffect joined #perl6
06:58 rurban_ joined #perl6
07:06 SamuraiJack joined #perl6
07:31 rurban_ joined #perl6
07:45 huf joined #perl6
07:51 Kharec joined #perl6
08:07 GlitchMr joined #perl6
08:11 araujo joined #perl6
08:11 araujo joined #perl6
08:16 huf joined #perl6
08:23 wamba joined #perl6
08:24 cognominal joined #perl6
08:25 Kharec joined #perl6
08:31 rurban_ joined #perl6
08:32 sisar joined #perl6
08:33 moritz r: nqp::can(module { }, 'something')
08:33 p6eval rakudo 50be5d: OUTPUT«No such method 'something' for invocant of type 'Any'␤  in any find_method at src/gen/Metamodel.pm:149␤  in block  at /tmp/yWVp9fwVp9:1␤␤»
08:35 moritz phenny: tell jnthn currently nqp::can(module { }, 'something') dies; that blocks my current sink efforts; any idea how to fix that?
08:35 phenny moritz: I'll pass that on when jnthn is around.
08:37 kaare_ joined #perl6
08:47 cognominal joined #perl6
08:49 skids joined #perl6
09:02 dalek rakudo/qast-sink-1: 86687dd | moritz++ | src/Perl6/Actions.pm:
09:02 dalek rakudo/qast-sink-1: sink ops related to flow control
09:02 dalek rakudo/qast-sink-1:
09:02 dalek rakudo/qast-sink-1: this busts compilation of Test.pm, because nqp::can(module {}, "anything") dies; but that needs fixing anyway
09:02 dalek rakudo/qast-sink-1: review: https://github.com/rakudo/rakudo/commit/86687dd541
09:09 nyuszika7h joined #perl6
09:09 cognominal joined #perl6
09:20 zby_home_ joined #perl6
09:32 rurban_ joined #perl6
09:47 Kharec joined #perl6
10:04 pmurias joined #perl6
10:06 pmurias sorear: re Moose, it loads slowly but isn't a substantial cost at runtime
10:08 GlitchMr pmurias: Imagine what would happen if awk or sed would use Moose.
10:08 huf we'd need an awkd and a sedd to load Moose once
10:09 huf and awk and sed would be thin clients connecting to their daemon
10:09 * diakopter deftly imagines a VM that can load a P6 object system in 3ms
10:10 sorear pmurias: I never said anything otherwise.
10:12 GlitchMr sedd
10:12 GlitchMr lol
10:14 Woodi good day today :)
10:15 Woodi very interesting things today on # :) inode foe varibles, daemons for text processing services :)
10:15 Woodi err
10:16 Woodi inotify :)
10:16 Woodi let me allow something...
10:16 huf you'd love my idea about using filesystems backwards then... keep the contents in the filename and the filename in the contents
10:19 Woodi what you say if every varible have companion thread (maybe not created for basic types)... so varibles would be actors and messages would be send and asynchronously *appear* in actor ?
10:19 Woodi assuming we will have plenty of additional cores :)
10:20 sorear once you get past 10 cores or so threads stop being a viable way to abstract them
10:20 sorear so any plan which requires >10 threads is DOA
10:20 Woodi sorear: "work" still need be done somehow, always, by something
10:22 Woodi when I was reading my first theoretical book about OO they use "message sending" phraze there... but we still have "message calling". and Smalltalk was inspired by Actor model
10:23 Woodi just theoretizing...
10:23 sorear Woodi: I feel like #perl6 people are unaware that perl 6 needs to run on single-core and dual-core machines too
10:24 sorear 2-4 core machines are not going away soon, and I hate it when y'all try to pessimize perl 6 for them,
10:24 sorear .
10:25 Woodi sorear: you are right. but do not think we # is so much into removing basic C types from v6...
10:26 * Woodi probably will start to use paper and pen before saying anything more
10:28 sorear sorry.  I'm just having a bad day, not your fault
10:31 Woodi I am fine :) diakopter had some sad moments
10:32 diakopter not sad..
10:32 Woodi sorear: you just have some *reality* orientation, probably do not like to waste time on poems and visions :)
10:32 rurban_ joined #perl6
10:33 diakopter yeah, those *bleep* implementors and their reality orientation
10:33 sorear diakopter: let AO = access some object SM = send message RM = receive message
10:33 sorear diakopter: thread 1: AO AO AO SM
10:33 sorear diakopter: thread 2: RM AO AO AO
10:34 sorear since a message send is a synchronizing operation and happens-before the message receive, the object accesses are (by transitivity) also totally ordered
10:34 sorear the ownership transfer is implicit but it's properly handled
10:35 diakopter I get what you're saying, but how is this anywhere in the JVM or CLR
10:36 sorear it's a logical consequence of rules 1, 3, and 4 in the definition of hb(x,y)
10:38 diakopter wtfh are you talking about?  I see your reference to hb(x,y), but how does it have anything to do with thread ownership
10:39 diakopter probably this is a better question.
10:39 diakopter "ownership transfer works fine in .net without language support
10:39 diakopter "
10:39 diakopter what did you mean by "ownership transfer"
10:40 sorear thread 1 creates an object, fills it with data, and sticks it in a message
10:40 sorear thread 2 receives the message and then pulls the data out of the object
10:41 sorear ownership of the object is an emergent property, not stored in the object itself
10:41 sorear the important thing is that both thread 1 and thread 2 can use full speed accesses
10:42 diakopter you just keep repeating yourself in different ways without answering my question
10:42 MayDaniel joined #perl6
10:43 diakopter what did you mean by "ownership transfer"
10:44 sorear I give up
10:45 Woodi diakopter: I think rights to write to varible. to not allowing coruption in shared memory systems ?
10:45 Woodi or avoiding locking
10:46 diakopter sorear: oh wait, we were thinking of different things; I see what you mean now. Your idea doesn't work at all for the scenarios I was discussing, it's no better than a lock, if only one thread can access it at once; it doesn't scale at all.
10:47 diakopter I thought you were describing something that wasn't an emergent property that was an internal thing JVM and CLR did (without needing language support)
10:47 Woodi diakopter: accessing to one varible must be oane at a time. whole list is other case
10:49 diakopter Woodi: why must access to one variable be only one at a time? and what do you mean by "variable" as opposed to a data structure?
10:50 Woodi varible is memory piece, hmm, basic cell type of list and list is build from such simple data structures...
10:51 cognominal joined #perl6
10:52 Woodi diakopter: one at a time means atomic access of data structure
10:54 am0c joined #perl6
10:55 diakopter o)o)
10:56 sorear sleep&
10:59 sqirrel joined #perl6
11:05 Su-Shee_ joined #perl6
11:06 wamba joined #perl6
11:27 birdwindupbird joined #perl6
11:33 rurban_ joined #perl6
11:37 rindolf joined #perl6
11:38 Woodi huf: how you imagine this backward filesystem ? :) if content is in file name then actual content can be empty... but how you "find" files ? - if you know filename then you already have needed data so not point in using files :)
11:40 Woodi on similiar topic: qmail queue of received mails (but not dispatched yet to personal mailboxes) use inode names as filenames for mails in that queue...
12:11 bloonix joined #perl6
12:21 cognominal joined #perl6
12:33 rurban_ joined #perl6
13:01 zjmarlow joined #perl6
13:08 tadzik good morning
13:26 sivoais joined #perl6
13:31 wamba joined #perl6
13:31 colomon_ joined #perl6
13:34 rurban_ joined #perl6
13:39 Kharec joined #perl6
13:49 pmurias joined #perl6
13:58 PacoAir joined #perl6
14:01 pmurias jnthn: how does backtracking into a subrule work?
14:03 Kharec joined #perl6
14:10 wamba joined #perl6
14:16 spider-mario joined #perl6
14:17 spider-mario joined #perl6
14:24 am0c joined #perl6
14:33 marloshouse_ joined #perl6
14:34 rurban_ joined #perl6
14:46 cognominal joined #perl6
15:05 wamba joined #perl6
15:19 colomon joined #perl6
15:35 zjmarlow joined #perl6
15:35 rurban_ joined #perl6
16:05 kurahaupo joined #perl6
16:10 tipdbmp phenny: .wik Perl 6
16:11 tipdbmp Is phenny written in Perl 5, or C?
16:11 moritz python, I thikn
16:11 tipdbmp Oh, okay.
16:27 Kharec joined #perl6
16:31 qiao joined #perl6
16:32 qiao left #perl6
16:36 Moukeddar joined #perl6
16:42 Moukeddar good evening #perl6
16:44 replore joined #perl6
16:45 Moukeddar i need some help
16:46 tadzik hello Moukeddar
16:46 Moukeddar hi tadzik, i need some help on how to store timetable information
16:47 Moukeddar basically we have three schedules, one for the teacher, one for the group of students, one for the room
16:49 Moukeddar and it's driving me crazy
16:51 pmurias you want to store the schedules from perl6?
16:52 Moukeddar no, it's a generic question, i'm asking if there is a proper way to store schedule data, like start time, end time, subject, class, teacher, room
16:53 pmurias there is no generic way to store things
16:53 rurban_ joined #perl6
16:54 Moukeddar right, but this situation is a bit more complex
16:56 Moukeddar i have to store it in a way to permet me to retrieve the proper timetable for each teacher/room/group
16:59 pmurias how big are the schedules?
16:59 wamba joined #perl6
16:59 pmurias Moukeddar: what technology are you using?
17:01 Moukeddar 6 days, and there are 10 hours a day, i have to specify for each hour, the teacher, the room,the goup and the subject, and in a way to permet to retrieve a schedule for a specific teacher or room or group
17:01 Moukeddar i'm using C#
17:03 FROGGS_ well, I'd make a (sql) database, fields are: id, date, hour, teacher, room, group, subject
17:04 FROGGS_ then you just select the row by querying for date and teacher for example
17:11 Moukeddar ok ok , i got it all clear now, i was using the wrong approach, i was storring a copy of the timetable as a 2D array inside the object of each teacher/toom/group
17:12 xilo_ joined #perl6
17:22 MayDaniel joined #perl6
17:32 replore joined #perl6
17:34 benabik joined #perl6
17:37 felher I thought /src/Perl6/Actions.pm (in Rakudo) is full-featured Perl6 code. Am I mistaken? I'm asking because it seems i can not write "say 'blar';" but have to write "say('blar');".
17:37 moritz felher: it's NQP code, not full Perl 6 code
17:38 felher moritz: ah, that explains a few things :)
17:38 felher moritz: thanks :)
17:38 moritz felher: you're welcome
17:41 dalek specs: 201ec75 | moritz++ | S14-roles-and-parametric-types.pod:
17:41 dalek specs: [S14] traits are called in sink context
17:41 dalek specs: review: https://github.com/perl6/specs/commit/201ec751a5
17:52 pmurias Moukeddar: you could still iterate over the whole array and find what you want
17:52 Moukeddar pmurias, that's my i'm using a different approach now
18:01 moritz r: role A { }; nqp::say nqp::can(A, 'foo')
18:01 p6eval rakudo 50be5d: OUTPUT«1␤»
18:03 kcwu joined #perl6
18:06 felher I'm curious: where are subs like nqp::chars defined?
18:06 moritz those aren't subs, they are ops
18:06 moritz in nqp, src/QAST/Operations.nqp
18:06 felher moritz: and thanks again :)
18:07 moritz some of those map streight to PIR ops (nqp::chars -> pir::length__Is or so)
18:07 moritz *straight
18:07 moritz others have more involved mappings
18:14 replore joined #perl6
18:26 Kharec joined #perl6
18:48 FROGGS_ moritz: what do you think about that: https://gist.github.com/4140897
18:49 Sarajevo joined #perl6
18:49 Sarajevo hello
18:50 Sarajevo i have few questions, I never really programmed in perl so should I start learing perl5 or I should go with perl6?
18:54 dalek nqp/gh67-threads: a93cc27 | rurban++ | src/pmc/nqplexpad.pmc:
18:54 dalek nqp/gh67-threads: [GH #67] Use rurban/gh870-pmc_class nqp_group.h information
18:54 dalek nqp/gh67-threads:
18:54 dalek nqp/gh67-threads: pmc2c from rurban/gh870-pmc_class exports the dynpmc types, which we use to
18:54 dalek nqp/gh67-threads: check for NQPLexInfo in NQPLexPad, to discriminate for Proxy. Proxy info is read-only.
18:54 dalek nqp/gh67-threads:
18:54 dalek nqp/gh67-threads: This does not work yet
18:54 dalek nqp/gh67-threads: review: https://github.com/perl6/nqp/commit/a93cc2781a
18:55 tipdbmp I think Perl 5's documentation is a lot better than that of Perl 6's, it also runs faster for now.
18:55 au Sarajevo: learn both - each makes learning the other one easier :)
18:55 phenny au: 09 Nov 18:47Z <[Coke]> ask au if she can fix Pugs on feather.
18:55 FROGGS_ Sarajevo: Perl 5 and 6 are too different, so it wouldnt be the best advice to start with Perl 5 to hack Perl 6 laster
18:55 FROGGS_ later
18:56 FROGGS_ au: thats too confusing for a beginner I think
18:57 tipdbmp Perl 5 is kinda like a subset of Perl 6, so I wouldn't say that they are too different.
18:57 au for a beginner to programming, certainly.
18:57 moritz FROGGS_: erm, what
18:57 moritz FROGGS_: that looks like it totally breaks nqp when used without rakudo
18:57 FROGGS_ I didnt know that this could be the case
18:58 moritz nqp uses qregex to compile itself
18:59 FROGGS_ k, I have another approach (that I did before what I just posted), that might fit better than
19:00 moritz self.throw_unreconigzed_metachar(~$/[0]);
19:01 moritz method throw_unrecognized_metahcar($char) { nqp::die("Unrecognized regex metacharacter $char (must be quoted to match literally)" }
19:01 moritz and then in rakudo, override throw_unreconigzed_metachar
19:05 FROGGS_ right, thats what I meant
19:07 FROGGS_ whats better: self.panic or nqp::die? self.panic is used there for obsolete things
19:08 moritz then self.panic
19:08 FROGGS_ k
19:17 replore joined #perl6
19:18 dalek nqp/gh67-threads: f07c9aa | rurban++ | src/pmc/nqplexpad.pmc:
19:18 dalek nqp/gh67-threads: [parrot #870] rename pmc_class_ to dynpmc_class_
19:18 dalek nqp/gh67-threads: review: https://github.com/perl6/nqp/commit/f07c9aaeca
19:22 rurban_ joined #perl6
19:23 wamba joined #perl6
19:36 fgomez joined #perl6
19:51 yeltzooo joined #perl6
19:55 FROGGS_ moritz: last try: https://gist.github.com/4140897
19:56 replore joined #perl6
20:28 dalek perl6-roast-data: 136a368 | coke++ | / (3 files):
20:28 dalek perl6-roast-data: today (automated commit)
20:28 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/136a3683a5
20:28 dalek perl6-roast-data: 7c01c17 | coke++ | / (4 files):
20:28 dalek perl6-roast-data: today (automated commit)
20:28 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/7c01c173e0
20:28 dalek perl6-roast-data: acfdcd0 | coke++ | / (3 files):
20:28 dalek perl6-roast-data: today (automated commit)
20:28 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/acfdcd09fc
20:28 dalek perl6-roast-data: b03fc20 | coke++ | / (3 files):
20:28 dalek perl6-roast-data: today (automated commit)
20:28 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/b03fc2014c
20:47 Chillance joined #perl6
20:52 sivoais joined #perl6
20:55 pmurias is there a rexep debugger for nqp?
20:57 [Coke] I think only for rakudo.
20:57 [Coke] (but you could probably debug your npq regex using rakudo tof igure out what was going on.)
20:59 pmurias I'm debugging bugs in my nqp-js regexp implementation, and I thought it might be usefull to hook that to a regexp debugger at some point
21:06 tadzik in nqp I used only the <?DEBUG(1> thingy
21:06 tadzik and putting { say("stuff") } everywhere
21:22 [Coke] sorear: FYI, 15 niecza failures in latest roast run.
21:28 sorear good * #perl6
21:33 sorear [Coke]: I'm surprised roast runs at all
21:41 [Coke] seems pretty stable over the past month (new tests need to be fudged is the main issue.)
21:42 * TimToady can't run niecza at all right now
21:45 Khisanth joined #perl6
21:45 bowtie joined #perl6
21:46 flussence TimToady: are you getting a segfault, by any chance?
21:47 * [Coke] is pretty sure his latest changes to roast-data are fetching a completely fresh niecza daily.
21:48 pmurias sorear: hi
21:50 [Coke] yah, seems fine on feather.
21:53 pmurias sorear: re charging for features you use I agree with that fully, but what I would like to see avoided is bending the design around how things are currently implemented
21:58 * pmurias wonders what is the fastest way to implement d in javascript
21:58 diakopter pmurias: I thought I saw an implement of the Unicode database in Javascript somewhere
21:59 diakopter *ation
22:02 TimToady https://gist.github.com/4141574
22:03 flussence hm, I think I've seriously borked something on mine :/
22:04 flussence https://gist.github.com/4141577
22:04 flussence (this is after trying a clean checkout too)
22:04 TimToady decommuting &
22:04 pmurias diakopter: I'm thinking of using \d in a javascript regexp
22:05 sorear it's not expected to work right now :/
22:05 sorear should later today
22:06 kurahaupo joined #perl6
22:32 pmurias sorear: what are the current niecza refactors aiming for?
23:09 sorear pmurias: same thing as the last ones, but this one might just succeed
23:15 pmurias sorear: and the last ones?
23:16 pmurias sorear: you mean unbootstrap?
23:16 snearch joined #perl6
23:17 sorear yes
23:27 fgomez joined #perl6
23:33 dalek nqp/throw_unrecognized_metachar: bc22f6b | (Tobias Leich)++ | src/QRegex/P6Regex/Grammar.nqp:
23:33 dalek nqp/throw_unrecognized_metachar: throwing warning from method to support typed exceptions
23:33 dalek nqp/throw_unrecognized_metachar: review: https://github.com/perl6/nqp/commit/bc22f6bae3
23:37 pmurias sorear: how is backtracking done in niecza rules?
23:42 rurban_ joined #perl6
23:44 sorear pmurias: each rule maintains a stack of choice points in the RxFrame structure
23:55 FROGGS_ phenny: ask moritz if he can please look at https://github.com/perl6/nqp/com​mits/throw_unrecognized_metachar and https://github.com/rakudo/rakudo/pull/90
23:55 phenny FROGGS_: I'll pass that on when moritz is around.
23:56 FROGGS_ thanks & gnight
23:57 wooden joined #perl6
23:57 wooden joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo