| Time |
S |
Nick |
Message |
| 06:09 |
|
|
mmatloka joined #virtualJUG |
| 06:21 |
|
|
millrossjez joined #virtualJUG |
| 06:29 |
|
|
_ollie joined #virtualJUG |
| 07:29 |
|
|
krjura joined #virtualJUG |
| 08:12 |
|
|
krjura joined #virtualJUG |
| 08:21 |
|
|
_ollie joined #virtualJUG |
| 09:17 |
|
|
Bevin joined #virtualJUG |
| 11:54 |
|
|
edburns joined #virtualJUG |
| 12:04 |
|
|
shelajev joined #virtualJUG |
| 12:07 |
|
shelajev |
hola! |
| 12:07 |
|
shelajev |
so ready for the session today! |
| 12:08 |
|
shelajev |
can Rafael read bytecode listings without any help or external materials? |
| 12:27 |
|
Maldivia |
he better :D |
| 12:48 |
|
|
shelajev joined #virtualJUG |
| 13:43 |
|
|
shelajev joined #virtualJUG |
| 13:46 |
|
|
shelajev_ joined #virtualJUG |
| 14:43 |
|
shelajev_ |
Hello Simon! Everything is ready |
| 14:43 |
|
shelajev_ |
hopefully |
| 14:43 |
|
sjmaple |
hello hello :) |
| 14:52 |
|
Maldivia |
:) |
| 15:08 |
|
|
raphw joined #virtualJUG |
| 15:28 |
|
|
LizMaple joined #virtualJUG |
| 15:30 |
|
LizMaple |
hello ? |
| 15:32 |
|
|
danim8rix joined #virtualJUG |
| 15:32 |
|
|
Traivor joined #virtualJUG |
| 15:36 |
|
pdurbin |
LizMaple: hi |
| 15:39 |
|
|
buergich joined #virtualJUG |
| 15:43 |
|
|
Elban joined #virtualJUG |
| 15:44 |
|
Elban |
Hi here :) |
| 15:49 |
|
sjmaple |
hello :) |
| 15:49 |
|
shelajev_ |
hello everyone! |
| 15:50 |
|
shelajev_ |
is LizMaple the actual Liz Maple or is it an imposter to soften Simon? |
| 15:51 |
|
|
sandor_nemeth joined #virtualJUG |
| 15:54 |
|
millrossjez |
hi |
| 15:55 |
|
|
geoL joined #virtualJUG |
| 15:55 |
|
D-Spair |
Hidee ho neighbors! |
| 15:55 |
|
sandor_nemeth |
hi everyone |
| 15:57 |
|
LizMaple |
I'm real Oleg :) |
| 15:57 |
|
|
Kirk joined #virtualJUG |
| 15:57 |
|
|
carljokl joined #virtualJUG |
| 15:57 |
|
|
mambrujo joined #virtualJUG |
| 15:58 |
|
mambrujo |
Hi |
| 15:58 |
|
carljokl |
Bytecode time... |
| 15:58 |
|
Maldivia |
that's every day though :D |
| 15:58 |
|
|
LizMaple joined #virtualJUG |
| 15:59 |
|
shelajev_ |
hi Liz! |
| 15:59 |
|
shelajev_ |
good to know :) |
| 15:59 |
|
shelajev_ |
Simon had to get properly dressed now that you're watching |
| 15:59 |
|
|
cafencup joined #virtualJUG |
| 15:59 |
|
sandor_nemeth |
@shelajev :D |
| 16:00 |
|
sandor_nemeth |
we'll see that in a few minutes |
| 16:00 |
|
|
Pascal joined #virtualJUG |
| 16:00 |
|
|
frack joined #virtualJUG |
| 16:01 |
|
|
brunobat joined #virtualJUG |
| 16:01 |
|
|
lohit joined #virtualJUG |
| 16:01 |
|
|
sury joined #virtualJUG |
| 16:01 |
|
|
Guest15995 left #virtualJUG |
| 16:02 |
|
|
lambdai joined #virtualJUG |
| 16:02 |
|
D-Spair |
Heh! Simon's getting dressed up and here I sit in my ratty old DNS.com T-shirt... :stuck_out_tongue: |
| 16:02 |
|
|
danim8rix-tab joined #virtualJUG |
| 16:02 |
|
|
alobodzki joined #virtualJUG |
| 16:02 |
|
|
gravy joined #virtualJUG |
| 16:02 |
|
|
Darren joined #virtualJUG |
| 16:02 |
|
|
thexceptioncat joined #virtualJUG |
| 16:02 |
|
|
andreaiacono joined #virtualJUG |
| 16:03 |
|
|
gafnerpa_ch joined #virtualJUG |
| 16:03 |
|
|
charles-e joined #virtualJUG |
| 16:03 |
|
|
znurgl joined #virtualJUG |
| 16:03 |
|
|
PacoZar joined #virtualJUG |
| 16:03 |
|
thexceptioncat |
is the stream showing? |
| 16:03 |
|
|
markdavison joined #virtualJUG |
| 16:03 |
|
D-Spair |
thexceptioncat: Not yet |
| 16:03 |
|
sandor_nemeth |
not yet |
| 16:03 |
|
alobodzki |
I don't see anything yet |
| 16:03 |
|
|
jchochli_ joined #virtualJUG |
| 16:04 |
|
|
Integer-J joined #virtualJUG |
| 16:04 |
|
|
kervin joined #virtualJUG |
| 16:04 |
|
|
melonstorm joined #virtualJUG |
| 16:04 |
|
|
asasasafsaf joined #virtualJUG |
| 16:04 |
|
|
matteogales joined #virtualJUG |
| 16:04 |
|
|
jeffpoole joined #virtualJUG |
| 16:05 |
|
|
cafrjbr joined #virtualJUG |
| 16:05 |
|
alobodzki |
You don't look silly at all |
| 16:05 |
|
|
Matthew joined #virtualJUG |
| 16:05 |
|
|
IanG joined #virtualJUG |
| 16:05 |
|
thexceptioncat |
glad to know its not just me |
| 16:06 |
|
|
monksy joined #virtualJUG |
| 16:06 |
|
|
znurgl left #virtualJUG |
| 16:06 |
|
monksy |
the share buttons on the live stream just fill in the url to virtualjug and not the stream you're watching |
| 16:06 |
|
|
Elban joined #virtualJUG |
| 16:06 |
|
|
thexceptioncat left #virtualJUG |
| 16:06 |
|
|
znurgl joined #virtualJUG |
| 16:07 |
|
monksy |
if you were having issues with the stream just hit refresh |
| 16:07 |
|
monksy |
its going on now |
| 16:07 |
|
LizMaple |
Hey Si :o) |
| 16:08 |
|
|
twasyl joined #virtualJUG |
| 16:08 |
|
|
Henri joined #virtualJUG |
| 16:08 |
|
|
k3rv1n joined #virtualJUG |
| 16:08 |
|
|
carljokl joined #virtualJUG |
| 16:08 |
|
shelajev_ |
is the video on virtualjug.com/#live working? |
| 16:09 |
|
twasyl |
yes |
| 16:09 |
|
|
SNR joined #virtualJUG |
| 16:09 |
|
carljokl |
I had to refresh to get it working again |
| 16:09 |
|
sandor_nemeth |
yes |
| 16:09 |
|
LizMaple |
it's fine here |
| 16:09 |
|
sandor_nemeth |
both on virtualjug.com/#live and on youtube |
| 16:10 |
|
|
Kriss joined #virtualJUG |
| 16:10 |
|
sjmaple |
as mentioned, questions in here pls :) |
| 16:11 |
|
jchochli_ |
can't believe he left out clojure |
| 16:11 |
|
jchochli_ |
:) |
| 16:11 |
|
millrossjez |
and kotlin :) |
| 16:12 |
|
* D-Spair |
jumps on the bandwagon |
| 16:12 |
|
D-Spair |
And Jython and Ceylon and JavaScript |
| 16:12 |
|
millrossjez |
:) |
| 16:12 |
|
PacoZar |
and php |
| 16:12 |
|
|
PM771 joined #virtualJUG |
| 16:12 |
|
D-Spair |
PacoZar: YEP! |
| 16:13 |
|
|
rgra joined #virtualJUG |
| 16:13 |
|
D-Spair |
And all of the above are supported inside of Vert.x! |
| 16:13 |
|
Maldivia |
and that language poeple had to implement a compiler for in their compiler theory course at Universities :D |
| 16:13 |
|
millrossjez |
;) D-Spair not all on vert.x 3 yet I thought |
| 16:13 |
|
Henri |
golo? :-) |
| 16:13 |
|
D-Spair |
Which reminds me, sjmaple : When are we getting Tim Fox on for a session?!?! |
| 16:13 |
|
|
asasasafsaf left #virtualJUG |
| 16:13 |
|
D-Spair |
millrossjez: Not on v3 yet, but JRuby and Jython should be ready soon. |
| 16:14 |
|
PacoZar |
D-Spair: a vjug on vertx would be awesome. I am following the v3 with a lot of excitement |
| 16:14 |
|
D-Spair |
PacoZar: I did a session at Code PaLOUsa a few weeks ago using Vert.x 3 |
| 16:15 |
|
D-Spair |
PacoZar: https://github.com/JUGGL/codepalousa-vertx-chat |
| 16:15 |
|
PacoZar |
D-Spair: I saw your github code... Really neat! |
| 16:15 |
|
sjmaple |
D-Spair: I've been talking to Tim and he's still focus on Vert.x development... |
| 16:15 |
|
|
mselender joined #virtualJUG |
| 16:15 |
|
sjmaple |
... but he is on the list and will give a session when it's fully done |
| 16:15 |
|
D-Spair |
sjmaple: SWEET! |
| 16:15 |
|
D-Spair |
sjmaple: Yeah, Tim and Julien are VERY hard at work on getting 3.0.0 out the door. |
| 16:16 |
|
sjmaple |
yeh, once it's out he'll do it |
| 16:16 |
|
sjmaple |
:) |
| 16:16 |
|
sjmaple |
it's dragging it's feet :) |
| 16:16 |
|
PacoZar |
sjmaple:yeah! the release date would be this summer |
| 16:16 |
|
sjmaple |
its* |
| 16:16 |
|
shelajev_ |
if anyone wants some written materials on bytecode |
| 16:16 |
|
sjmaple |
it was supposed to be Dec! :) |
| 16:16 |
|
sjmaple |
last year |
| 16:16 |
|
shelajev_ |
we have a RebelLabs report on mastering it: http://zeroturnaround.com/rebellabs/rebel-labs-report-mastering-java-bytecode-at-the-core-of-the-jvm/ |
| 16:17 |
|
|
brunobat joined #virtualJUG |
| 16:17 |
|
PacoZar |
shelajev_:Thanks for the link! |
| 16:18 |
|
millrossjez |
thanks Oleg, I for one will be reading that |
| 16:18 |
|
shelajev_ |
you're welcome! it's also available in a neat PDF form |
| 16:18 |
|
|
TVP joined #virtualJUG |
| 16:18 |
|
shelajev_ |
http://pages.zeroturnaround.com/RebelLabs-AllReportLanders_MasteringJavaBytecodeattheCoreoftheJVM.html |
| 16:18 |
|
shelajev_ |
that's gated |
| 16:18 |
|
shelajev_ |
and if you leave your email there I'll write you an email once in a while |
| 16:18 |
|
TVP |
Guys joining from India, good session but not sure why my video quality is poor, any reasons? |
| 16:19 |
|
sjmaple |
click on the cog at the bottom and change your streaming quality |
| 16:19 |
|
twasyl |
What if the instruction is return 2* 3 + 1 ? |
| 16:19 |
|
D-Spair |
TVP, try manually selecting 720p in the hangout settings. |
| 16:20 |
|
PacoZar |
so bytecode is very close to assembler? |
| 16:20 |
|
shelajev_ |
hi twasyl! |
| 16:21 |
|
|
Traivor joined #virtualJUG |
| 16:21 |
|
twasyl |
hi Oleg :) |
| 16:21 |
|
TVP |
Was seeing in this page, noticed YouTube link thanks all |
| 16:21 |
|
|
sol908 joined #virtualJUG |
| 16:21 |
|
shelajev_ |
yeah, it has pretty basic math operations |
| 16:21 |
|
|
Elban joined #virtualJUG |
| 16:21 |
|
twasyl |
Yeah |
| 16:21 |
|
|
KotaiVictor joined #virtualJUG |
| 16:21 |
|
shelajev_ |
and stack operation operations |
| 16:21 |
|
twasyl |
Hi SImon |
| 16:22 |
|
|
dove joined #virtualJUG |
| 16:22 |
|
monksy |
a question for the end of the talk: Are there any interesting corner cases that you've found in the JVM? |
| 16:23 |
|
PacoZar |
Great, thanks! |
| 16:23 |
|
sjmaple |
the JVM has more corners than middle bits :) |
| 16:23 |
|
Maldivia |
monksy: hehe -- there are _many_ corner cases, depending on version and vendor :D |
| 16:24 |
|
sjmaple |
I bet there are some interesting answers though |
| 16:24 |
|
monksy |
I'm just interested in the interesting ones that he has found... but thats a question for him after the presentation |
| 16:24 |
|
sjmaple |
I'll ask at the end, I'm sure Rafa has some amusing stories |
| 16:24 |
|
melonstorm |
Well, this is interesting. Reminds me of Python. |
| 16:24 |
|
monksy |
thanks! |
| 16:25 |
|
PacoZar |
melonstorm:why reminds you of Python? |
| 16:25 |
|
melonstorm |
PacoZar, Python's OOP model requires your class's instance methods to take this as the first argument. |
| 16:26 |
|
PacoZar |
melonstorm:oh! thanks! |
| 16:26 |
|
PacoZar |
didn't know that about Python |
| 16:28 |
|
twasyl |
ILOAD_1 is only for an int primitive type or also for Objects? And when lambdas are passed in parameters? |
| 16:28 |
|
|
sudhcha joined #virtualJUG |
| 16:28 |
|
Maldivia |
twasyl: ILOAD_1 would be for int primitives, ALOAD is for object types |
| 16:28 |
|
twasyl |
Thanks |
| 16:29 |
|
Maldivia |
twasyl: similar LLOAD for long, DLOAD for double, FLOAD for float |
| 16:29 |
|
twasyl |
got it, tahnks |
| 16:29 |
|
twasyl |
thanks* |
| 16:32 |
|
twasyl |
How the byte code manages the unboxing/outboxing? Does it automatically add operations like I2S? |
| 16:33 |
|
twasyl |
inboxing* |
| 16:33 |
|
Maldivia |
boxing/unboxing is done by the compiler, by calling Integer.valueOf |
| 16:33 |
|
carljokl |
I would imagine autoboxing is syntactic sugar |
| 16:33 |
|
Maldivia |
(and similar methods for other types) |
| 16:33 |
|
carljokl |
Yes the compiler will expand out the code |
| 16:35 |
|
|
mambrujo joined #virtualJUG |
| 16:35 |
|
|
dmitrygusev joined #virtualJUG |
| 16:37 |
|
Maldivia |
String values :) |
| 16:39 |
|
rgra |
Try Map<String,Integer> map....; map.put("test, null); int i = map.get("test"); |
| 16:39 |
|
rgra |
Gives you an NPE because compiler translates it to int i = map.get("test").intValue() |
| 16:39 |
|
|
Errorneous joined #virtualJUG |
| 16:39 |
|
|
mohan joined #virtualJUG |
| 16:40 |
|
sjmaple |
hey Rabea :) |
| 16:40 |
|
sjmaple |
that's a really interesting bug! |
| 16:40 |
|
Maldivia |
it's not a bug... you're trying to dereference null |
| 16:41 |
|
sjmaple |
no you're not |
| 16:41 |
|
sandor_nemeth |
@sjmaple .. I'd say that's a feature, not a bug |
| 16:41 |
|
sjmaple |
Java is trying to do that :) |
| 16:41 |
|
sjmaple |
the problem is null can't be assigned to int ;) |
| 16:41 |
|
rgra |
I have it in my tests when hiring people... most of them don't find this hidden NPE in this case |
| 16:41 |
|
rgra |
Seems like you two are having a good time in Boston :) |
| 16:42 |
|
Guest88326 |
What is the newer 'stackmap' used for ? |
| 16:42 |
|
|
mselender joined #virtualJUG |
| 16:42 |
|
Maldivia |
Guest88326: faster/"better" verification of classes |
| 16:43 |
|
Guest88326 |
Meaning ? |
| 16:44 |
|
Maldivia |
Guest88326: before the VM loads a class, it verifies that the bytecode is sane -- stackmaps is used there to help that verification, by explicitly stating what types locals/stacks contain at various points in your code |
| 16:44 |
|
|
paltun joined #virtualJUG |
| 16:45 |
|
twasyl |
Is INVOKEDYNAMIC an improvement of INVOKEVIRTUAL? |
| 16:45 |
|
Maldivia |
totally different := |
| 16:46 |
|
|
mustafap joined #virtualJUG |
| 16:46 |
|
|
TVP joined #virtualJUG |
| 16:46 |
|
Guest88326 |
Thanks |
| 16:46 |
|
sjmaple |
yw |
| 16:47 |
|
sjmaple |
twasyl afaik, invoke virtual is primarily used for constructor methods |
| 16:47 |
|
TVP |
If everything is represented as bytes , how does jVM know which byte is from constant pool etc.? |
| 16:47 |
|
twasyl |
thx |
| 16:47 |
|
Maldivia |
sjmaple: no no.... invoke virtual is normal method calls, invokespecial is constructor/super/private |
| 16:47 |
|
sjmaple |
oh, yeh, that's right, got them mixed up! |
| 16:48 |
|
shelajev_ |
here's a neat resourse on the JVM instructions: http://en.wikipedia.org/wiki/Java_bytecode_instruction_listings |
| 16:48 |
|
twasyl |
@sjmaple: too much invoke |
| 16:48 |
|
twasyl |
;) |
| 16:48 |
|
sjmaple |
haha |
| 16:48 |
|
twasyl |
thx Oleg |
| 16:48 |
|
Maldivia |
twasyl: invokevirtual, invokeinterface, invokespecial, invokeinterface, invokedynamic... only 5 :) |
| 16:48 |
|
sjmaple |
TVP, will ask in a bit... |
| 16:49 |
|
Maldivia |
oh, I had invokeinterface twice, replace one with invokestatic :D |
| 16:50 |
|
alobodzki |
also final methods |
| 16:51 |
|
Maldivia |
final methods are invokevirtual as well (unless they are private or static) |
| 16:51 |
|
twasyl |
any invokerebellabs? (joking) |
| 16:52 |
|
|
SNR joined #virtualJUG |
| 16:53 |
|
|
Damn joined #virtualJUG |
| 16:53 |
|
Maldivia |
twasyl: not yet, but go champion a JEP to get one :) |
| 16:53 |
|
sjmaple |
don't joke, create a JEP |
| 16:53 |
|
twasyl |
:) |
| 16:53 |
|
sjmaple |
haha |
| 16:54 |
|
twasyl |
maybe stupid question: Nashorn uses INVOKEDYNAMIC for calling JS script that uses Java classes? |
| 16:55 |
|
Maldivia |
twasyl: lambdas in java8 is INVOKEDYNAMIC |
| 16:55 |
|
PM771 |
How is method overloading handled? |
| 16:57 |
|
rgra |
Here something on Nashorn and invokedynamic: http://java.dzone.com/articles/how-java-8-handles-javascript |
| 16:57 |
|
Maldivia |
PM771: they have different signatures in the JVM so it sees them as completely different method, and as shown earlier, the compiler writes directly to bytecode which one to use |
| 16:58 |
|
twasyl |
@rgra: great thanks |
| 16:59 |
|
carljokl |
Are there downsides or risks from using Invoke Dynamic? |
| 17:00 |
|
rgra |
the way lambdas are implemented also makes it possible to easily compile Java 8 to Java 7 bytecode: https://github.com/orfjackal/retrolambda |
| 17:00 |
|
rgra |
Really interesting! |
| 17:05 |
|
alobodzki |
Shouldn't Liskov substitution be less or equally restrictive? |
| 17:09 |
|
twasyl |
That's useful for mocking |
| 17:09 |
|
rgra |
But for mocking there's already libraries which hide all these details for you in a mocking oriented API |
| 17:09 |
|
twasyl |
yep |
| 17:09 |
|
twasyl |
mockito and friends |
| 17:10 |
|
shelajev_ |
but sometimes you want to generate things on the fly during runtime |
| 17:10 |
|
twasyl |
like JRebel right? |
| 17:10 |
|
|
jchochli_ left #virtualJUG |
| 17:10 |
|
shelajev_ |
:) like XRebel, Chronon, any profiler etc |
| 17:11 |
|
shelajev_ |
even when you just want to generate a proxy |
| 17:11 |
|
shelajev_ |
for a model class to make it Hibernate aware :) |
| 17:11 |
|
rgra |
BTW Oleg I have to correct myself. Favorite open source projekt: Lombok :) |
| 17:11 |
|
rgra |
Which does also use runtime code generation to patch Eclipse for example |
| 17:11 |
|
shelajev_ |
thanks, Rabea :) I'll update the recap post! :D |
| 17:12 |
|
Maldivia |
lombok isn't runtime code generation, it does it at compile time with annotation parser |
| 17:13 |
|
rgra |
Yes, but I does patch eclipse to allow refactoring etc. on several locations |
| 17:14 |
|
Maldivia |
ah, ok |
| 17:14 |
|
rgra |
https://github.com/rzwitserloot/lombok/blob/master/src/eclipseAgent/lombok/eclipse/agent/EclipsePatcher.java |
| 17:15 |
|
Maldivia |
rgra: missed the fact you were talking about the eclipse plugin, thought you were talking about lombok itself :) |
| 17:17 |
|
rgra |
What is the most amazing example you have seen implemented with ByteBuddy, Rafael? |
| 17:17 |
|
carljokl |
Now Dalvik is superseded by ART |
| 17:21 |
|
D-Spair |
Looks like implementing AOP-style programming in Bytebuddy would be pretty awesome! |
| 17:21 |
|
PacoZar |
http://bytebuddy.net/#/ |
| 17:23 |
|
|
markdavison joined #virtualJUG |
| 17:23 |
|
k3rv1n |
Question : Is there an "Interactive dissembler" like "IDA Pro" for Java? |
| 17:24 |
|
D-Spair |
Thanks Rafael! |
| 17:24 |
|
twasyl |
Thanks Rafael !!! |
| 17:25 |
|
znurgl |
it was really awesome, thanks! |
| 17:25 |
|
|
PeTeC joined #virtualJUG |
| 17:25 |
|
melonstorm |
Thanks, Rafael~ |
| 17:27 |
|
shelajev_ |
k3rv1n, I think you're looking for JITWatch |
| 17:27 |
|
shelajev_ |
not sure if it's like IDA Pro |
| 17:28 |
|
PacoZar |
Question: How would you recommend to handle interop with C dlls? |
| 17:28 |
|
k3rv1n |
thanks, not really. |
| 17:29 |
|
|
markdavison joined #virtualJUG |
| 17:29 |
|
k3rv1n |
it would convert *.class to bytecode. Then it would allow modifying that bytecode in memory. It also lets you step through execution |
| 17:30 |
|
|
buergich left #virtualJUG |
| 17:31 |
|
k3rv1n |
You can then save your modified bytecode as *.class files. So basically, view, debug/step, modify, save. All in bytecode and *.class files. |
| 17:32 |
|
k3rv1n |
IDA Pro : https://www.hex-rays.com/products/ida/ |
| 17:32 |
|
|
dmitrygusev joined #virtualJUG |
| 17:33 |
|
Maldivia |
k3rv1n: problem is, that java debugging is based on lines, not stepping individual instructions, so debugging directly in bytecode isn't supported by the JVM |
| 17:34 |
|
|
Donnerbart joined #virtualJUG |
| 17:34 |
|
k3rv1n |
I see thanks. |
| 17:35 |
|
melonstorm |
Does anyone have a link to the book? |
| 17:35 |
|
twasyl |
bye bye guys |
| 17:36 |
|
twasyl |
was great !!! |
| 17:36 |
|
raphw |
ill be here after the interview |
| 17:36 |
|
raphw |
thank you for attending! |
| 17:36 |
|
Maldivia |
enginnering solution... duct tape and wd40 can solve everything |
| 17:36 |
|
Donnerbart |
thx a lot for the great session! |
| 17:36 |
|
|
rgra left #virtualJUG |
| 17:38 |
|
|
Traivor left #virtualJUG |
| 17:41 |
|
|
markdavison joined #virtualJUG |
| 17:42 |
|
D-Spair |
We should totally do what Rafael suggested and start an open-source security framework project using Byte Buddy and annotations... |
| 17:44 |
|
D-Spair |
It would be fantastic... Perhaps it could wrap around some existing security/AAA tools like Shiro or other to do the external bits, but then implement some annotations and exception classes to allow for wrapping methods which have cross-cutting concerns... |
| 17:50 |
|
sjmaple |
Maldivia: just a hammer short of the full set... btw, do I know you? ;) I feel like I do! :D |
| 17:50 |
|
Maldivia |
:D |
| 17:50 |
|
Maldivia |
btw Rafael -- are you attending GeekOut this year? |
| 17:51 |
|
sjmaple |
no, I don't think he is (sad-face) |
| 17:51 |
|
sjmaple |
maybe as a speaker next year :) |
| 17:57 |
|
PacoZar |
Hey guys is the bytecode modified in memory by the jvm/jit? |
| 17:59 |
|
Maldivia |
the jit doesn't modify bytecode, it compiles it into machine code |
| 17:59 |
|
Maldivia |
if you redefine the class at runtime, then yes, the jvm modifies the bytecode |
| 18:00 |
|
Maldivia |
and you cannot be 100% sure that the bytecode you get from the JVM via the Instrumentation API is the same as you would get form loading from .class file on disk/jar |
| 18:01 |
|
sjmaple |
replay link is here http://virtualjug.com/java-byte-code-in-practice/ |
| 18:01 |
|
sjmaple |
with slides |
| 18:02 |
|
Maldivia |
(especially attributes are sometimes list when getting the bytes from the JVM) |
| 18:02 |
|
Maldivia |
lost* |
| 18:03 |
|
PacoZar |
Maldivia:cool thanks! |
| 18:03 |
|
Maldivia |
and hint: do not try to redefine a class that uses invokedynamic, if you're running java7 :D |
| 18:05 |
|
|
jeffpoole joined #virtualJUG |
| 18:11 |
|
|
markdavison joined #virtualJUG |
| 18:16 |
|
raphw |
thanks again for attending, i am still here a bit, thanks for answering questions of each other in the mean time |
| 18:16 |
|
raphw |
is there anything that was not clear from the session? anything you want to know? |
| 18:16 |
|
|
markdavison joined #virtualJUG |
| 18:16 |
|
raphw |
i am happy to help |
| 18:20 |
|
raphw |
even better, then i get to go home! see you guys arround, thanks for coming to this talk! |
| 18:23 |
|
|
dmitrygusev joined #virtualJUG |
| 18:32 |
|
|
millrossjez joined #virtualJUG |
| 18:36 |
|
|
millrossjez joined #virtualJUG |
| 18:40 |
|
|
millrossjez joined #virtualJUG |
| 18:45 |
|
|
millrossjez joined #virtualJUG |
| 18:52 |
|
|
millrossjez joined #virtualJUG |
| 19:00 |
|
|
markdavison joined #virtualJUG |
| 19:03 |
|
|
millrossjez joined #virtualJUG |
| 19:11 |
|
|
millrossjez joined #virtualJUG |
| 19:15 |
|
|
millrossjez joined #virtualJUG |
| 19:30 |
|
PacoZar |
Thanks raphw! |
| 19:49 |
|
|
LizMaple joined #virtualJUG |
| 20:25 |
|
|
millrossjez joined #virtualJUG |
| 20:46 |
|
|
millrossjez joined #virtualJUG |
| 20:51 |
|
|
PacoZar joined #virtualJUG |
| 21:14 |
|
|
spodge joined #virtualJUG |
| 21:15 |
|
spodge |
HAI! |
| 21:18 |
|
|
millrossjez joined #virtualJUG |
| 21:46 |
|
|
shelajev joined #virtualJUG |
| 22:56 |
|
|
PM771 joined #virtualJUG |